
public OnPlayerCommandText(playerid, cmdtext[])
{
	#define CMD_TOKEN(%1) mystrtok(%1, cmdtext, idx)
	CheckPlayerBounds(playerid);

	new cmd[48]; // no command longer available
	new idx = 0, vehicleid, isadm, cmdhash;

	//if(playerid < 0 || playerid >= NUM_PLAYERS) // no 'out of array bounds' error
	//	return 0;

	CheckSync(playerid);
	#if defined DEATHMATCH
	if(getbool(indm, playerid)) return
		SendClientMessage(playerid, COLOR_INFO1, "You are currently in the deathmatch mode. Use /kill to leave");
	#endif
	isadm = IsPlayerExAdmin(playerid);
	vehicleid = GetPlayerVehicleID(playerid);
	CMD_TOKEN(cmd);
	cmdhash = bhash(cmd[1]);


	//ToLowerCase(cmd); // sets input to lower

	if(cmdhash == /* help */ -1014035980 )
	{
		new tmp[48];
		//mystrtok(tmp, cmdtext, idx);
		CMD_TOKEN(tmp);
		if(!isnull(tmp))
		{
			for(new i=0; i < sizeof(cmdsdesc); i++)
			{
				if(strfind(cmdsdesc[i], tmp, true, 0) != -1)
					SendClientMessage(playerid, COLOR_GREEN, cmdsdesc[i]);
			}
			//SendClientMessage(playerid, COLOR_ERROR, "Not found help for your request.");
			return true;
		}
		SendClientMessage(playerid,COLOR_YELLOW,"LSFR Stunt Server.");
		SendClientMessage(playerid,COLOR_YELLOW,"Type /cmd to list commands.");
//		SendClientMessage(playerid,COLOR_YELLOW,"Type /teles to list some useful teleports.");
		SendClientMessage(playerid,COLOR_YELLOW,"\'God Mode\' by default is off. To turn it on type /godmode on");
		SendClientMessage(playerid,COLOR_YELLOW,"Use /hotkeys to list or toggle \'hot keys\'.");
		#if defined DOI_inc
		ShowPlayerInfoText(playerid, AddInfo("LSFR Stunt Server.~n~Type /cmd to list commands."));
		#endif
		return true;
	}
	if(cmdhash == /* cmds */ -126011190  || cmdhash == /* commands */ -1832887461 )
	{
		//SendClientMessage(playerid,COLOR_YELLOW,"Some commands are not listed.");
		SendClientMessage(playerid,COLOR_GREEN, CMD_DESC_COMMANDS_D1);
		SendClientMessage(playerid,COLOR_GREEN, CMD_DESC_COMMANDS_D2);
		SendClientMessage(playerid,COLOR_GREEN, CMD_DESC_COMMANDS_D3);
		SendClientMessage(playerid,COLOR_GREEN, CMD_DESC_COMMANDS_D4);
		SendClientMessage(playerid,COLOR_GREEN, CMD_DESC_COMMANDS_D5);
		SendClientMessage(playerid,COLOR_GREEN, CMD_DESC_COMMANDS_D6);
		SendClientMessage(playerid,COLOR_GREEN, CMD_DESC_COMMANDS_D7);
		SendClientMessage(playerid,COLOR_GREEN, CMD_DESC_COMMANDS_D8);
		SendClientMessage(playerid,COLOR_GREEN, CMD_DESC_COMMANDS_D9);
		#if defined DOI_inc
		ShowPlayerInfoText(playerid, infoboxes[0]);
		#endif
		SendClientMessage(playerid, COLOR_INFO1, "To list full description of each command use /cmd.");
		return true;
	}
	if(cmdhash == /* teles */ -1342661638 )
	{
		#if MOD_CURRENT == MOD_UNITED || MOD_CURRENT == MOD_UNITEDOLD
		SendClientMessage(playerid,COLOR_GREEN, "/t [0-"#NUM_SPAWNS"] - Spawn Locations(VC)");
		SendClientMessage(playerid,COLOR_GREEN, "\"/tp 1471 -178 92\" - Office Jump(VC)");
		SendClientMessage(playerid,COLOR_GREEN, "\"/tp -27 1345 55\" - Marco's Bistro(LC)");
		SendClientMessage(playerid,COLOR_GREEN, "\"/tp -1898 2341 216\" - Observatory(LC)");//
		SendClientMessage(playerid,COLOR_GREEN, "\"/tp 1348 2997 1722\" - Los Santos(SA)");//
		SendClientMessage(playerid,COLOR_GREEN, "\"/tp 1309 2924 1733\" - Los Santos P2(SA)");//
		#elseif MOD_CURRENT == MOD_URMCR
		#endif
		return true;
	}
	#if G_DEBUG == true
	if(cmdhash == /* news */ 1825848752 )
	{
		SendClientMessage(playerid, COLOR_INFO1, "Aint no news to be shown");
	}
	#endif

	if(cmdhash == /* cmd */ 1998769723 )
	{
		new tmp[32], page;
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp)) page = 0;
		else page = strval(tmp) - 1;
		return ShowBook(cmdsdesc, sizeof(cmdsdesc), page, cmd, playerid);
	}
	if(cmdhash == /* rules */ -366999880 )
	{
		new tmp[32], page;
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp)) page = 0;
		else page = strval(tmp) - 1;
		return ShowBook(rules, sizeof(rules), page, cmd, playerid);
	}

	/************************* ACTION COMMANDS *********************/
	if(cmdhash == /* h */ -854850313 ||cmdhash == /* heal */ 1364702315 )
	{
		SetPlayerHealth(playerid, godmod[playerid]?PL_HEALTH:100.0);
		SetPlayerArmour(playerid, godmod[playerid]?PL_HEALTH:0.0);
		if(vehicleid)
			SetVehicleHealth(vehicleid, godmod[playerid]?(PL_HEALTH*10):1000.0);
		return true;
	}

	/******************* KILL ******/
	if(cmdhash == /* kill */ 351902685 ||cmdhash == /* suicide */ 1441866815 )
	{
		if(vehicleid && IsPlayerDriver(playerid))
			SetVehicleHealth(vehicleid, 1.0);
		SetPlayerHealth(playerid, 0.0);
		return true;
	}

	/******** TELEPORT *************/
	if(cmdhash == /* home */ -106068384 )
	{
		SetPlayerRandomSpawn(playerid);
		return true;
	}
	if(cmdhash == /* t */ -787739837 )
	{
		new tmp[32];
		new tport;
		CMD_TOKEN(tmp /*[32]*/);
		tport = strval(tmp);
		if(isnull(tmp)||(tport<0||tport>=NUM_SPAWNS))
		{
			SendPlayerUsageMsg(playerid, cmd, "[0-"#NUM_SPAWNS"]");
			return true;
		}
		TeleportPlayerToPoint(playerid, PlayerSpawns[CurrentCity][tport][0], PlayerSpawns[CurrentCity][tport][1],
			PlayerSpawns[CurrentCity][tport][2],PlayerSpawns[CurrentCity][tport][3],0); // Warp the player
		SetCameraBehindPlayer(playerid);
		//format(tmp, sizeof(tmp), "%s teleported to location %d.", pName,tport);
		//SendClientMessageToAll(COLOR_INFO1, tmp);
		return true;
	}

	if(cmdhash == /* carcolor */ -1293957654 )
	{
		new tmp[64], col1,col2;
		CMD_TOKEN(tmp);
		if(!vehicleid)
			return SendClientMessage(playerid, COLOR_ERROR, "Get vehicle first!");
		if(isnull(tmp))
		{
			SendPlayerUsageMsg(playerid, cmd, "[color1] ([color2])");
			#if defined vcolors_inc // tmp[0] & tmp[1] as car colors
			if(GetVehicleModelRandomColor(GetVehicleModel(vehicleid), tmp[0], tmp[1]))
			{
				format(tmp, sizeof(tmp), "Example: %s %d %d", cmd, tmp[0], tmp[1]);
				SendClientMessage(playerid, COLOR_INFO1, tmp);
			}
			#endif
			return true;
		}
		col1 = strval(tmp);
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp)) col2 = col1;
		else col2 = strval(tmp);
		ChangeVehicleColor(vehicleid,col1,col2);
		return true;
	}
	/********************* SAVE/LOAD POSITIONS ****/
	if(cmdhash == /* savepos */ 855829886 ||cmdhash == /* spos */ -226258526 )
	{
		/*if(vehicleid) {
		GetVehiclePos(vehicleid,savedpos[playerid][0],savedpos[playerid][1],savedpos[playerid][2]);
		GetVehicleZAngle(vehicleid,savedpos[playerid][3]);} else {*/
		GetPlayerPosition(playerid,savedpos[playerid][0],savedpos[playerid][1],savedpos[playerid][2],savedpos[playerid][3]);
		//GetPlayerFacingAngle(playerid,savedpos[playerid][3]);}
		SendClientMessage(playerid, COLOR_INFO1, "Position saved.");
		#if defined _dini_included || defined mxini_inc
		WriteUserData(playerid, RW_MASK_POS);
		#endif
		return true;
	}
	if(cmdhash == /* loadpos */ 884427637 ||cmdhash == /* lpos */ -444367573 )
	{
		if(!savedpos[playerid][0]&&!savedpos[playerid][1]&&!savedpos[playerid][2])
			return SendClientMessage(playerid, COLOR_INFO1, "Position not saved. /savepos first.");
		TeleportPlayerToPoint(playerid,savedpos[playerid][0],savedpos[playerid][1],savedpos[playerid][2],savedpos[playerid][3]);
		SetCameraBehindPlayer(playerid);
		SendClientMessage(playerid, COLOR_INFO1, "Position loaded.");
		return true;
	}
	/*************** COLOR *******************/
	if(cmdhash == /* color */ -248214824 )
	{
		new tmp[32],rgb[3], pcol;
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp)) return SetPlayerColor(playerid, RANDOM_COLOR);
		rgb[0]=strval(tmp)%0x100;
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp)) return SendPlayerUsageMsg(playerid, cmd, "[0-255] [0-255] [0-255]");
		rgb[1]=strval(tmp)%0x100;
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp)) return SendPlayerUsageMsg(playerid, cmd, "[0-255] [0-255] [0-255]");
		rgb[2]=strval(tmp)%0x100;
		pcol = ALPHA + ((rgb[0]*0x100+rgb[1])*0x100+rgb[2])*0x100;
		SetPlayerColor(playerid, pcol);
		#if defined _dini_included || defined mxini_inc
		WriteUserData(playerid, RW_MASK_COLOR);
		#endif
		return true;
	}
	if(cmdhash == /* getcolor */ -1754919332 )
	{
		new tmp[96], gid, gcol;
		CMD_TOKEN(tmp);
		if(isnull(tmp)) return SendPlayerUsageMsg(playerid, cmd, "[playerid]");
		else gid = strid(tmp);
		if(!IsPlayerConnected(gid)) return SendClientMessage(playerid, COLOR_ERROR, CMD_INVALID_PLID);
		else gcol = GetPlayerColor(gid);
		format(tmp, sizeof(tmp), "Player %s(%d) color: %d; Red: %d, Green: %d, Blue: %d, Alpha: %d.", GetFormattedName(gid), gid,
			gcol, (gcol >> 24) & 0xFF, (gcol >> 16) & 0xFF, (gcol >> 8) & 0xFF, gcol & 0xFF);
		SendClientMessage(playerid, COLOR_INFO1, tmp);
		return true;
	}
	if(cmdhash == /* skin */ 310840926 )
	{
		new tmp[32];
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp))
		{
			format(tmp, sizeof(tmp), "Skin: %d", GetPlayerSkin(playerid));
			SendClientMessage(playerid, COLOR_INFO1, tmp);
			SendPlayerUsageMsg(playerid, cmd, "[skinid]");
			return true;
		}
		tmp[0] = strval(tmp);
		if(!IsValidSkin(tmp[0])/*&&!isadm*/) return SendClientMessage(playerid, COLOR_ERROR, "Incorrect skin ID!");
		else SetPlayerSkin(playerid, tmp[0]);
		SetSpawnInfo(playerid, 0, tmp[0], PLAYER_DEFSPAWN, PLAYER_DEFWEAPONS);
		if(vehicleid)
			StopPlayer(playerid, 2.0);
		#if defined _dini_included || defined mxini_inc
		WriteUserData(playerid, RW_MASK_SKIN);
		#endif
		return true;
	}

	if(cmdhash == /* jetpack */ 1641144933 )
	{
		//if(!isadm) return false; else
		if(GetPlayerState(playerid)!=PLAYER_STATE_NONE)
		{
			SetPlayerSpecialAction(playerid,SPECIAL_ACTION_USEJETPACK);
			SetPVarInt(playerid, "ac_jetpack", 1);
		}
		return true;
	}

	if(cmdhash == /* buygun */ -450143953 ||cmdhash == /* buyweapon */ -694856357 )
	{
		new tmp[64], wid, price, ammo;
		//if(godmod[playerid]) return SendClientMessage(playerid, COLOR_ERROR,
		//	"You can\'t buy weapons with God Mode enabled. Type \'/godmode off\' first");
		CMD_TOKEN(tmp);
		if(isnull(tmp))
		{
			SendPlayerUsageMsg(playerid, cmd, "[weaponid] ([ammo])");
			SendClientMessage(playerid, COLOR_INFO1, "For list available weapon ids type /guns.");
			return true;
		}
		wid = strval(tmp);
		if(wid>sizeof(gunprice)-1 || wid<0 || gunprice[wid] == -1)
			return SendClientMessage(playerid, COLOR_ERROR, "Incorrect or disallowed weapon ID!");
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp)) ammo = 200;
		else ammo = strval(tmp);
		if(ammo <= 0 || ammo > 10000 || wid<=15) ammo = 200;
		price = (wid>15 && wid!=46)?(gunprice[wid]/PRICE_COUNT*ammo):gunprice[wid];
		if(!IsPlayerGotMoney(playerid, price)) return SendClientMessage(playerid, COLOR_ERROR, "You have not enought money!");
		GivePlayerMoney(playerid, -abs(price));
		GivePlayerWeapon(playerid, wid, ammo);
		//GetWeaponName(wid, gundesc, sizeof(gundesc));
		//gundesc = GetWeaponNameEx(wid);
		format(tmp, sizeof(tmp), "You bought %s[%d] for $%d.",GetWeaponNameEx(wid),wid,price);
		SendClientMessage(playerid, COLOR_INFO1, tmp);
		#if defined _dini_included || defined mxini_inc
		WriteUserData(playerid, RW_MASK_MONEY);
		#endif
		return true;
	}
	if(cmdhash == /* guns */ 1910860940 ||cmdhash == /* weapons */ 634322714 )
	{
		new tmp[96];
		for(new i=1;i<sizeof(gunprice);i++)
		{
			if(gunprice[i]==-1&&!isadm) continue;
			//GetWeaponName(i, tmp, sizeof(tmp));
			format(tmp,sizeof(tmp),"%s (id:%d) - $%d",GetWeaponNameEx(i), i, gunprice[i]);
			SendClientMessage(playerid, COLOR_INFO3, tmp);
		}
		return true;
	}
	/*********************** VR **************/
	if(cmdhash == /* vr */ 1795481945 )
	{
		//new vehid = GetPlayerVehicleID(playerid);
		if(!vehicleid)
			return SendClientMessage(playerid, COLOR_ERROR, "Get vehicle first!");
		else
			SetVehicleHealth(vehicleid, 1000.0);
		return true;
	}
	#if defined __samp03
	if(cmdhash == /* vrx */ 1432794235 ||cmdhash == /* repair */ 923955614 ||cmdhash == /* fix */ 1129664260 )
	{
		//new vehid = GetPlayerVehicleID(playerid);
		if(!vehicleid)
			return SendClientMessage(playerid, COLOR_ERROR, "Get vehicle first!");
		else
			RepairVehicle(vehicleid);
		return true;
	}
	#endif
	/***************** Car ****************/
	if(cmdhash == /* car */ -1697035891  || cmdhash == /* v */ -754184599 )
	{
		//static vec=0;
		new tmp[96],carid;
		new vid, Float:vpos[4];
		static timelimit[NUM_PLAYERS] = {0, ...};
		//if(vec>=MAX_VEHS) vec=0;
		//CMD_TOKEN(tmp);
		mystrend(tmp, cmdtext, idx);
		//plvid = GetPlayerVehicleID(playerid);
		if(isnull(tmp))
		{
			SendPlayerUsageMsg(playerid, cmd, "[name]");
			//carid = vehicleid?(GetVehicleModel(vehicleid)):(vcc);
			carid = vcc;
		}
		else carid = strval(tmp);
		#if G_DEBUG == true
		printf("%s %d", tmp, carid);
		#endif
		if(strcmd(tmp, "vcc")) carid = vcc;
		else if(!carid && !strcmd(tmp, "0"))
		{ // find vehicle by name
			for(new i=0,f=-1; i < sizeof(aVehicleNames) && f != 0; i++)
				if((f=strfind(aVehicleNames[i],tmp,true,0)) != -1)
					carid = i + 400;
		}
		#if G_DEBUG == true
		printf("%s %d", tmp, carid);
		#endif
		#if MOD_CURRENT == MOD_UNITED
		if(carid<400 || carid>612)
		#else
		if(carid<400 || carid>611)
		#endif
			return SendClientMessage(playerid,COLOR_ERROR, "Incorrect vehicle ID/name.");
		#if defined DENY_BAD_CARS
		if(gActivePlayers > 1 && !isadm && !GetPlayerVirtualWorld(playerid))
		{
			if(IsVehicleModelBad(carid))
				return SendClientMessage(playerid, COLOR_ERROR, "This vehicle is disallowed to spawn!");
		}
		#endif
		if(!isadm && (GetTickCount()<timelimit[playerid]))
				return SendClientMessage(playerid, COLOR_ERROR, "You can spawn vehicle only once per 5 seconds!");
		GetPlayerPosition(playerid,vpos[0],vpos[1],vpos[2], vpos[3]);
		//fA = GetPlayerZAngle(playerid);
		GetXYByAngle(vpos[0],vpos[1], vehicleid?anglef(vpos[3]-90.0):vpos[3], 3.0);
		//DestroyVehicle(veh_ob[vec]);
		#if defined mymap_inc
		if(!GetPlayerInterior(playerid))
		{
			new Float:ftmp;
			ftmp = mymap_mygetz2(vpos[0], vpos[1]);
			if(ftmp > vpos[2]) vpos[2] = ftmp;
		}
		#endif
		vpos[2] += 1.85;
		#if defined vcolors_inc // tmp[0] & tmp[1] as car colors
		//tmp[0] = GetVehicleModelRandomColor1(carid);
		//tmp[1] = GetVehicleModelRandomColor2(carid);
		if(carid < 612) // united
			GetVehicleModelRandomColor(carid, tmp[0], tmp[1]);
		#else
		tmp[0] = -1;
		tmp[1] = -1;
		#endif
		if(GetVehicleModelType(carid) == VTYPE_CAR)
			tmp[2] = 400;
		else
			tmp[2] = 60;
		vid = CreateVehicle(carid,vpos[0],vpos[1],vpos[2],vpos[3], tmp[0], tmp[1], tmp[2]);
		LinkVehicleToInterior(vid, GetPlayerInterior(playerid));
		SetVehicleVirtualWorld(vid, GetPlayerVirtualWorld(playerid));
		if(cmdhash == /* v */ -754184599 )
		{
			//new Float:vvel[3];
			//if(plvid) GetVehicleVelocity(plvid, vvel[0], vvel[1], vvel[2]);
			//SetVehicleVelocity(plvid, 0.0, 0.0, 0.0);
			//if(vehicleid) RemovePlayerFromVehicle(playerid);
			SetPlayerPos(playerid,vpos[0],vpos[1],vpos[2]+2.7);//Radio fix

			SetTimerEx("PutPlayerInVehicleFunc",450,false,"ii",playerid,vid);
			//if(plvid) SetVehicleVelocity(vid, vvel[0], vvel[1], vvel[2]);
			//for(new i=0;i<NUM_PLAYERS;i++) if(IsPlayerConnected(i)&&IsPlayerInVehicle(i,vehicleid))
				//PutPlayerInVehicle(i,vid,1+i%3);
		}
		format(tmp,sizeof(tmp),"Spawned %s, modelid: %d, vehicleid: %d, color1: %d, color2: %d.",
			aVehicleNames[carid-400], carid, vid, tmp[0], tmp[1]);
		SendClientMessage(playerid,COLOR_INFO2, tmp);
		print(tmp);
		if(vid >= MAX_PRIVATE_CARS)
			DestroyVehicle(lastpubliccar+1);
		else if(IsVehicleConnected(MAX_PRIVATE_CARS))
			DestroyVehicle(vid + 1);
		timelimit[playerid] = GetTickCount() + 5 * 1000;
		//else DestroyVehicle(vid+1);
		//veh_ob[vec++]=vid;

		#if defined __samp03 && __samp03 >= 3
		if(tmp[2] == 400) // !!!
		{ // vehicle is car ...
			//new tmp[MAX_PLAYER_NAME];
			GetPlayerName(playerid, tmp, sizeof(tmp));
			tmp[7] = EOS; // crop
			for(new i=0; i < 7; i++)
				if(!isletter_lat(tmp[i])) tmp[i] = '_';
			SetVehicleNumberPlate(i, tmp);
		}
		#endif


		return(vid && vid != INVALID_VEHICLE_ID);
	}
	/**************** Pos *************/
	if (cmdhash == /* xyz */ 635735724 ||cmdhash == /* off */ 753123590 )
	{
		new tmp[32];
		new Float:plx,Float:ply,Float:plz;
		#if defined __samp03
		new Float:vx, Float:vy, Float:vz;
		if(vehicleid)
			GetVehicleVelocity(vehicleid,vx,vy,vz); else
			GetPlayerVelocity(playerid,vx,vy,vz);
		#endif
		GetPlayerPosition(playerid,plx,ply,plz);
		#if G_DEBUG == true
		printf("%f/%f/%f",plx,ply,plz); //
		#endif
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp)) return SendPlayerUsageMsg(playerid, cmd, "[x] [y] ([z])");
		plx+=floatstr(tmp);
		CMD_TOKEN(tmp /*[32]*/);
		if(!isnull(tmp))
		ply+=floatstr(tmp);
		CMD_TOKEN(tmp /*[32]*/);
		if(!isnull(tmp)) plz+=floatstr(tmp);
		#if defined mymap_inc
		else plz = mymap_mygetz2(plx, ply) + 1.0;
		#endif
		#if G_DEBUG == true
		printf("%f/%f/%f",plx,ply,plz); //
		#endif
		TeleportPlayerToPoint(playerid,plx,ply,plz);
		#if defined __samp03
		if(vehicleid&&IsPlayerDriver(playerid))
			SetVehicleVelocity(vehicleid,vx,vy,vz); else
			SetPlayerVelocity(playerid,vx,vy,vz);
		#endif
		return true;
	}
	/**/
	if (cmdhash == /* tp */ 1023417281 ||cmdhash == /* setloc */ -371358649 )
	{
		new Float:plx,Float:ply,Float:plz;
		new tmp[32];
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp)) return SendPlayerUsageMsg(playerid, cmd, "[x] [y] ([z]) ([interiorid])");
		else plx=floatstr(tmp);
		CMD_TOKEN(tmp /*[32]*/);
		if(!isnull(tmp))
		ply=floatstr(tmp);
		CMD_TOKEN(tmp /*[32]*/);
		if(!isnull(tmp)) plz = floatstr(tmp);
		#if defined mymap_inc
		else plz = mymap_mygetz(plx, ply) + 1.0;
		#endif
		CMD_TOKEN(tmp /*[32]*/);
		if(!isnull(tmp))
		tmp[0] = strval(tmp);
		#if G_DEBUG == true
		printf("%f/%f/%f",plx,ply,plz); //
		#endif
		TeleportPlayerToPoint(playerid,plx,ply,plz, -1, tmp[0]);
		return true;
	}
	if(cmdhash == /* forw */ -1674871571 )
	{
		new Float:plx,Float:ply,Float:plz, Float:pla;
		new tmp[32];
		GetPlayerPosition(playerid,plx,ply,plz, pla);
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp)) return SendPlayerUsageMsg(playerid, cmd, "[distance] ([up])");
		else GetXYByAngle(plx,ply,pla, floatstr(tmp));
		CMD_TOKEN(tmp /*[32]*/);
		if(!isnull(tmp)) plz+=floatstr(tmp);
		#if defined mymap_inc
		else plz = mymap_mygetz2(plx, ply);
		#endif
		TeleportPlayerToPoint(playerid,plx,ply,plz);
		return true;
	}

	/********************* Angle *********************/
	if (cmdhash == /* a */ -1005848884 )
	{
		new Float:pla;
		new tmp[32];
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp)) return SendPlayerUsageMsg(playerid, cmd, "[degrees]");
		pla = anglef(floatstr(tmp));
		if(vehicleid)
			SetVehicleZAngle(vehicleid,pla);
		else
			SetPlayerFacingAngle(playerid,pla);
		return true;
	}
	if (cmdhash == /* angle */ -1052760804 )
	{
		new tmp[32];
		new Float:pla;
		pla = GetPlayerZAngle(playerid);
		#if G_DEBUG == true
		printf("%f",pla); //
		#endif
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp))
		{
			format(tmp, sizeof(tmp), "Angle: %0.4f", pla);
			SendClientMessage(playerid, COLOR_INFO1, tmp);
			SendPlayerUsageMsg(playerid, cmd, "[degrees]");
			return true;
		}
		else pla+=floatstr(tmp);
		pla = anglef(pla);
		if(vehicleid)
			SetVehicleZAngle(vehicleid,pla); else
			SetPlayerFacingAngle(playerid,pla);
		return true;
	}
	if (cmdhash == /* flip */ -778658668 )
	{
		new Float:pla;//, pvid;
		//pvid = GetPlayerVehicleID(playerid);
		if(!vehicleid) return SendClientMessage(playerid, COLOR_ERROR, "Get vehicle first!");
		GetVehicleZAngle(vehicleid, pla);
		SetVehicleZAngle(vehicleid, pla);
		return true;
	}
	if(cmdhash == /* faceto */ -590728295 ||cmdhash == /* lookat */ -1594051157 )
	{
		new
			Float:pX,
			Float:pY,
			Float:pZ,
			Float:X,
			Float:Y,
			Float:ang;
		new tmp[32], targetid;
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp)) return SendPlayerUsageMsg(playerid, cmd, "[playerid]");
		targetid = strid(tmp);

		if(!IsPlayerConnected(playerid) || !IsPlayerConnected(targetid)) return
			SendClientMessage(playerid,COLOR_ERROR, CMD_INVALID_PLID);

		GetPlayerPosition(targetid, X, Y, pZ);
		GetPlayerPosition(playerid, pX, pY, pZ);

		if( Y > pY ) ang = (-acos((X - pX) / floatsqroot((X - pX)*(X - pX) + (Y - pY)*(Y - pY))) - 90.0);
		else if( Y < pY && X < pX ) ang = (acos((X - pX) / floatsqroot((X - pX)*(X - pX) + (Y - pY)*(Y - pY))) - 450.0);
		else if( Y < pY ) ang = (acos((X - pX) / floatsqroot((X - pX)*(X - pX) + (Y - pY)*(Y - pY))) - 90.0);

		if(X > pX) ang = (floatabs(floatabs(ang) + 180.0));
		else ang = (floatabs(ang) - 180.0);

		#if defined __samp03
		ClearPlayerSpeed(playerid, anglef(GetPlayerZAngle(playerid)-ang), true);
		#endif
		if(vehicleid)
			SetVehicleZAngle(vehicleid, ang);
		else
			SetPlayerFacingAngle(playerid, ang);
		#if defined __samp03
		ClearPlayerSpeed(playerid, 0, true);
		#endif
		return true;
	}
	#if MOD_CURRENT == MOD_SAMP
	if(cmdhash == /* cube */ 363096254 )
	{
		new tmp[32], i;
		new Float:cminpos[3], Float:cmaxpos[3], Float:dist;
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp)) return SendPlayerUsageMsg(playerid, cmd, "[radius]");
		dist = floatstr(tmp);
		GetPlayerPosition(playerid, cminpos[0], cminpos[1], cminpos[2]);
		for(i = 0; i < 3; i++)
			cmaxpos[i] = cminpos[i] + dist;
		for(i = 0; i < 3; i++)
			cminpos[i] = cminpos[i] - dist;
		return CreateCube(3851, cminpos[0], cmaxpos[0], 11.3, cminpos[1], cmaxpos[1], 11.3,
			cminpos[2], cmaxpos[2], 4.0, 0.0);
	}
	#endif
	/********************* GOTO/GET ****************/
	if(cmdhash == /* goto */ -213186484 ||cmdhash == /* get */ 943522159 ||cmdhash == /* port */ 1593936092 )
	{
		new tmp[32], toid, Float:dist,
			Float:topos[4];//, forw, up;
		new tovid, toint;
		#if defined __samp03
		new Float:tovel[3];
		#endif
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp))
			return SendPlayerUsageMsg(playerid, cmd, "[playerid]"); //[forward]) ([up])");
		toid = strid(tmp);
		if(!IsPlayerConnected(toid)) return SendClientMessage(playerid, COLOR_ERROR, CMD_INVALID_PLID);
		if(getbool(nogoto, toid)) return SendClientMessage(playerid, COLOR_ERROR,
			"This player has disallowed teleporting!");
		if(!IsPlayerSpawned(toid)) return SendClientMessage(playerid, COLOR_ERROR, "This player has not spawned!");
		#if defined DEATHMATCH
		if(getbool(indm, toid)) return SendClientMessage(playerid, COLOR_ERROR,
			"This player is currently in deathmatch mode!");
		#endif
		CMD_TOKEN(tmp /*[32]*/);
		dist = floatstr(tmp);
		if(cmdhash == /* get */ 943522159 )
		{
			if(!isadm) return false;
			new tmp2 = toid;
			toid=playerid; playerid=tmp2;
		}
		else if(cmdhash == /* port */ 1593936092 )
		{
	 		if(!isadm) return false;
			CMD_TOKEN(tmp /*[32]*/);
			if(isnull(tmp)) return SendPlayerUsageMsg(playerid, cmd, "[playerid] [to_player]");
			playerid = toid;
			toid = strid(tmp);
		}
		tovid = GetPlayerVehicleID(toid);
		GetPlayerPosition(toid,topos[0],topos[1],topos[2],topos[3]);
		#if defined __samp03
		if(tovid)
			GetVehicleVelocity(tovid, tovel[0], tovel[1], tovel[2]);
		#endif
		//GetPlayerFacingAngle(toid, topos[3]);
		toint = GetPlayerInterior(toid);
		GetXYByAngle(topos[0],topos[1], topos[3], (dist == 0)?(tovid?-6.5:-2.0):dist);
		#if defined mymap_inc
		if(!toint)
		{
			new Float:ftmp;
			ftmp = mymap_mygetz2(topos[0], topos[1]);
			if(ftmp > topos[2]) topos[2] = ftmp;
		}
		#endif
		// port player
		TeleportPlayerToPoint(playerid,topos[0],topos[1],topos[2],topos[3],toint);
		/* disallow goto to player with different virtual world
		if(vehicleid)
			SetVehicleVirtualWorld(vehicleid, GetPlayerVirtualWorld(toid));
		SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(toid));
		*/
		#if defined __samp03
		if(vehicleid)
			SetVehicleVelocity(vehicleid, tovel[0], tovel[1], tovel[2]);
		#endif
		#if defined DOO_inc || defined _streamer_included || defined mystreamer_inc
		StreamPlayerObjects( playerid,topos[0],topos[1],topos[2]);
		#endif
		return true;
	}
	if(cmdhash == /* nogoto */ 1268652245 ||cmdhash == /* notele */ 1208415536 )
	{
		new bool:istele;
		istele = !getbool(nogoto, playerid);
		if(istele)
			SendClientMessage(playerid, COLOR_INFO1, "You have disabled teleporting to yourself.");
		else
			SendClientMessage(playerid, COLOR_INFO1, "You have enabled teleporting to yourself.");
		setbool(nogoto, playerid, istele);
		#if defined _dini_included || defined mxini_inc
		WriteUserData(playerid, RW_MASK_OPT);
		#endif
		return true;
	}
	/*************** RAMP *******************/
	if(cmdhash == /* u */ -804517456 ||cmdhash == /* ramp */ 1118007701 )
	{
		static obc = 0; // counter
		new Float:ppos[6];
		#if defined mymap_inc
		new Float:rtmp[3];
		#endif
		new tmp[64];
		new oid;
		if(obc >= MAX_RAMPS || ramp_ob[0]==-1) obc = 0; // clear counter
		GetPlayerPosition(playerid, ppos[0], ppos[1], ppos[2], ppos[5]);
		//ppos[3] = GetPlayerZAngle(playerid);
		GetXYByAngle(ppos[0], ppos[1], ppos[5], 15.0);
		CMD_TOKEN(tmp /*[32]*/);
		#if !defined objects_inc
		if(isnull(tmp)|| !(oid = strval(tmp)) || !isadm) oid = 1634;
		#else
		if(isnull(tmp)|| !(oid = strval(tmp))) oid = 1634;
		else if(!cmdtext[idx] && !IsValidObjectModel(oid))
			return SendClientMessage(playerid, COLOR_ERROR, "Invalid object model!");
		#endif
		//if(oid == 12106) ppos[2]+=21.1;
		#if defined mymap_inc /** Aligning the ramp **/
		mymap_myfindz2(ppos[0], ppos[1], ppos[2]);
		rtmp[0] = ppos[0]; rtmp[1] = ppos[1];
		GetXYByAngle(rtmp[0],rtmp[1],ppos[5], -3.2);
		mymap_myfindz2(rtmp[0], rtmp[1], rtmp[0]);
		ppos[3] = asin((ppos[2]-rtmp[0])/3.2) - 0.2;
		//ppos[3] *= 0.87;
		rtmp[0] = ppos[0]; rtmp[1] = ppos[1];
		GetXYByAngle(rtmp[0],rtmp[1],anglef(ppos[5]+90.0), -5.5);
		mymap_myfindz2(rtmp[0], rtmp[1], rtmp[2]);
		rtmp[0] = ppos[0]; rtmp[1] = ppos[1];
		GetXYByAngle(rtmp[0],rtmp[1],anglef(ppos[5]-90.0), -5.5);
		mymap_myfindz2(rtmp[0], rtmp[1], rtmp[0]);
		ppos[4] = asin((rtmp[0]-rtmp[2])/11.0);
		#endif
		//ppos[4] *= 0.87;
		ppos[2] -= 0.13;
		#if G_DEBUG == true
		printf("CreateObject(%d,%0.2f,%0.2f,%0.2f,%0.2f,%0.2f,%0.2f);",oid,ppos[0],ppos[1],ppos[2],ppos[3],ppos[4],ppos[5]);
		#endif
		#if defined DOO_inc || defined _streamer_included
		if(ramp_ob[obc]!=-1&&IsValidStreamObject(ramp_ob[obc])) DestroyStreamObject(ramp_ob[obc]);
		ramp_ob[obc] = CreateStreamObject(oid,ppos[0],ppos[1],ppos[2],ppos[3],ppos[4],ppos[5]);
		StreamPlayerObjects(playerid, ppos[0], ppos[1], ppos[2]);
		StreamObjects();
		#else
		if(ramp_ob[obc]!=-1&&IsValidObject(ramp_ob[obc])) DestroyObject(ramp_ob[obc]);
		ramp_ob[obc] = CreateObject(oid,ppos[0],ppos[1],ppos[2],ppos[3],ppos[4],ppos[5]);
		#endif
		#if defined DOO_inc
		if(ramp_ob[obc] == INVALID_OBJECT_ID || GetStreamObjectObjectID(playerid, ramp_ob[obc]) == INVALID_OBJECT_ID)
		#else
		if(ramp_ob[obc] == INVALID_OBJECT_ID)
		#endif
		{
			++obc;
			return SendClientMessage(playerid,COLOR_ERROR, "Error!");
		}
		#if defined DOO_inc
		format(tmp,sizeof(tmp),"Ramp #%d; stream id %d; object id %d; model id %d", obc++, ramp_ob[obc], //
			GetStreamObjectObjectID(playerid, ramp_ob[obc]), oid);
		#else
		format(tmp,sizeof(tmp),"Ramp #%d; object id %d; model id %d", obc++, ramp_ob[obc], oid);
		#endif
		SendClientMessage(playerid,COLOR_INFO2, tmp);
		return true;
	}
	/*********************/
	if(cmdhash == /* sramp */ -1387521358 )
	{
		new Float:sr[6];
		new obrc;
		new msg[128];
		CMD_TOKEN(msg);
		if(isnull(msg)) return SendPlayerUsageMsg(playerid, cmd, "[ramp #]");
		obrc = strval(msg);
		if(ramp_ob[obrc]==-1 || !IsValidObject(ramp_ob[obrc])) return false;
		#if defined DOO_inc || defined _streamer_included
		GetStreamObjectPos(ramp_ob[obrc],sr[0],sr[1],sr[2]);
		GetStreamObjectRot(ramp_ob[obrc],sr[3],sr[4],sr[5]);
		#else
		GetObjectPos(ramp_ob[obrc],sr[0],sr[1],sr[2]);
		GetObjectRot(ramp_ob[obrc],sr[3],sr[4],sr[5]);
		#endif
		mystrend(msg, cmdtext, idx);
		format(msg,sizeof(msg), "%s, %0.2f, %0.2f, %0.3f, %0.2f, %0.2f, %0.2f;", msg,
			sr[0],sr[1],sr[2],sr[3],sr[4],sr[5]);
		if(isadm) WriteLog(RAMPS_PATH, msg, false);
		print(msg);
		SendClientMessage(playerid,COLOR_INFO1, msg);
		return true;
	}
	/*************** RAMP CLEAN *******************/
	if(cmdhash == /* cramp */ -1119079454 )
	{
		//if(!isadm) return false;
		new tmp[32];
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp))
		for(new i=0;i<MAX_RAMPS;i++)
		{
			#if defined DOO_inc || defined _streamer_included
			if(ramp_ob[i]!=-1&&IsValidStreamObject(ramp_ob[i]))
				DestroyStreamObject(ramp_ob[i]);
			#else
			if(ramp_ob[i]!=-1&&IsValidObject(ramp_ob[i]))
				DestroyObject(ramp_ob[i]);
			#endif
			ramp_ob[i] = -1;
		}
		else
		{
			tmp[0] = strval(tmp);
			#if defined DOO_inc || defined _streamer_included
			if(ramp_ob[tmp[0]]!=-1&&IsValidStreamObject(ramp_ob[tmp[0]]))
				DestroyStreamObject(ramp_ob[tmp[0]]);
			#else
			if(ramp_ob[tmp[0]]!=-1&&IsValidObject(ramp_ob[tmp[0]]))
				DestroyObject(ramp_ob[tmp[0]]);
			#endif
			ramp_ob[tmp[0]] = -1;
		}
		return true;
	}

	/************ V-POS LOGGER ********/
	if(cmdhash == /* pos */ 286274885 ||cmdhash == /* vpos */ -276591383 )
	{
		new
			Float:fX,
			Float:fY,
			Float:fZ, Float:fA;
		new vpid[48], vid;
		new sString[96];
		CMD_TOKEN(vpid);
		if(isnull(vpid)) strcat(vpid, "vcc");
		GetPlayerPosition(playerid,fX,fY,fZ,fA);
		vid = strval(vpid);
		format(sString, sizeof(sString), "%s, %0.2f, %0.2f, %0.3f, %0.2f, -1, -1; # %s\0",
			vpid,fX,fY,fZ,fA, ((vid>=400&&vid<=612)?(aVehicleNames[vid-400]):"veh"));
		if(isadm)
			WriteLog(POS_PATH, sString, false);
		print(sString);
		SendClientMessage(playerid,COLOR_INFO1, sString);
		return true;
	}

	/************ BARREL ARMOR ********/
	if(cmdhash == /* arm */ 2066990125 ||cmdhash == /* att */ 979887516 )
	{
		//new ob_id[9];
		new tmp[32], oid, Float:dist;
		CMD_TOKEN(tmp /*[32]*/);
		oid = strval(tmp);
		#if !defined objects_inc
		if(isnull(tmp)|| !oid || !isadm) oid = 1225;
		#else
		if(isnull(tmp)|| !oid) oid = 1225;
		else if(!IsValidObjectModel(oid)) return SendClientMessage(playerid, COLOR_ERROR, "Invalid object model!");
		#endif
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp)) dist = 7.0;
		else dist = floatstr(tmp);



		for(new i=0; i<=8; i++)
			if(ramp_ob[i]!=-1&&IsValidObject(ramp_ob[i])) DestroyObject(ramp_ob[i]);
		ramp_ob[0]=CreateObject(oid,0.0,0.0,0.0,0.0,0.0,0.0);
		AttachObjectToPlayer(ramp_ob[0],playerid,dist,0.0,0.0, 0.0,0.0,0.0);//
		ramp_ob[1]=CreateObject(oid,0.0,0.0,0.0,0.0,0.0,0.0);
		AttachObjectToPlayer(ramp_ob[1],playerid,-dist,0.0,0.0, 0.0,0.0,0.0);//
		ramp_ob[2]=CreateObject(oid,0.0,0.0,0.0,0.0,0.0,0.0);
		AttachObjectToPlayer(ramp_ob[2],playerid,0.0,dist,0.0, 0.0,0.0,0.0);//
		ramp_ob[3]=CreateObject(oid,0.0,0.0,0.0,0.0,0.0,0.0);
		AttachObjectToPlayer(ramp_ob[3],playerid,0.0,-dist,0.0, 0.0,0.0,0.0);//
		ramp_ob[4]=CreateObject(oid,0.0,0.0,0.0,0.0,0.0,0.0);
		AttachObjectToPlayer(ramp_ob[4],playerid,dist,-dist,0.0, 0.0,0.0,0.0);//
		ramp_ob[5]=CreateObject(oid,0.0,0.0,0.0,0.0,0.0,0.0);
		AttachObjectToPlayer(ramp_ob[5],playerid,-dist,-dist,0.0, 0.0,0.0,0.0);//
		ramp_ob[6]=CreateObject(oid,0.0,0.0,0.0,0.0,0.0,0.0);
		AttachObjectToPlayer(ramp_ob[6],playerid,dist,dist,0.0, 0.0,0.0,0.0);//
		ramp_ob[7]=CreateObject(oid,0.0,0.0,0.0,0.0,0.0,0.0);
		AttachObjectToPlayer(ramp_ob[7],playerid,-dist,dist,0.0, 0.0,0.0,0.0);//
		ramp_ob[8]=CreateObject(oid,0.0,0.0,0.0,0.0,0.0,0.0);
		AttachObjectToPlayer(ramp_ob[8],playerid,0.0,0.0,dist, 0.0,0.0,0.0);//

		//SendInternalNotify("/arm is in use", playerid, oid);

		return(ramp_ob[8]!=INVALID_OBJECT_ID);
	}
	/**************** NOS *************/
	if(cmdhash == /* nos */ 588272027 )
	{
		//if((!vehicleid || GetVehicleType(vehicleid) != VTYPE_CAR)&&!isadm)
			//return SendClientMessage(playerid, COLOR_ERROR, "Get car first!");	else
		//AddVehicleComponent(vehicleid, 1010); // Nitro
		if(!vehicleid) return SendClientMessage(playerid, COLOR_ERROR, "Get car first!");
		if(!IsInvalidNOSVehicle(vehicleid))
			AddVehicleComponent(vehicleid, 1010);
		else
			SendClientMessage(playerid, COLOR_ERROR, "You can\'t install NOS to this vehicle!");
		return true;
	}
	if(cmdhash == /* hydro */ -584611479 )
	{
		if((!vehicleid || GetVehicleType(vehicleid) != VTYPE_CAR) && !isadm)
			return SendClientMessage(playerid, COLOR_ERROR, "Get car first!");
		else AddVehicleComponent(vehicleid, 1087); // Hydro
		return true;
	}
	/******************** PAINTJOB **********/
	if(cmdhash == /* paintjob */ -346841088 )
	{
		new tmp[32];
		//vid = GetPlayerVehicleID(playerid);
		if(!vehicleid || GetVehicleType(vehicleid) != VTYPE_CAR) return false;
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp)) return SendPlayerUsageMsg(playerid, cmd, "[paintjobid]");
		tmp[0]=strval(tmp);
		if((tmp[0]>4||tmp[0]<-1)&&!isadm) return SendClientMessage(playerid, COLOR_INFO1, "Paintjob IDs: 0-4, -1");
		ChangeVehiclePaintjob(vehicleid, tmp[0]);
		return true;
	}
	/***************** CARGET ************/
	if(cmdhash == /* vget */ -1056379717 ||cmdhash == /* backv */ -1669257816 )
	{
		new tmp[32], Float:pos[4];
		new vehid;
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp))
			return SendPlayerUsageMsg(playerid, cmd, "[vehicleid]");
		vehid=strval(tmp);
		if(!IsVehicleConnected(vehid)) return SendClientMessage(playerid, COLOR_ERROR, "Incorrect vehicle ID!");
		GetPlayerPosition(playerid,pos[0],pos[1],pos[2],pos[3]);
		GetXYByAngle(pos[0],pos[1], pos[3], 5.0);
		SetVehiclePos(vehid,pos[0], pos[1],pos[2]);
		SetVehicleZAngle(vehid,pos[3]);
		return true;
	}
	if(cmdhash == /* vgoto */ 421380334 )
	{
		new tmp[32], Float:pos[4];
		new vehid;
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp))
			return SendPlayerUsageMsg(playerid, cmd, "[vehicleid]");
		vehid = strval(tmp);
		if(!IsVehicleConnected(vehid)) return SendClientMessage(playerid, COLOR_ERROR, "Incorrect vehicle ID!");
		GetVehiclePos(vehid,pos[0], pos[1],pos[2]);
		GetVehicleZAngle(vehid,pos[3]);
		GetXYByAngle(pos[0],pos[1], pos[3], -5.5);
		TeleportPlayerToPoint(playerid,pos[0],pos[1],pos[2],pos[3]);
		return true;
	}
	if(cmdhash == /* vput */ 2127649504 )
	{
		new tmp[64], vid;
		CMD_TOKEN(tmp);
		if(isnull(tmp))
		{
			if(!vehicleid)
			{
				new Float:ppos[3], Float:vpos[3];
				new Float:dist, Float:c[2], Float:maxdist = 1000.0;
				new nearestvid = 0;
				GetPlayerPos(playerid, ppos[0], ppos[1], ppos[2]);
				c[0] = (ppos[0] * ppos[0] + ppos[1] * ppos[1] + ppos[2] * ppos[2])/2; // using y-less's distance check optimisations
				for(new i = 1; i < MAX_PRIVATE_CARS; i++)
				{
					GetVehiclePos(i, vpos[0], vpos[1], vpos[2]);
					if(!vpos[0]&&!vpos[1]&&!vpos[2]) continue;
					c[1] = (vpos[0] * vpos[0] + vpos[1] * vpos[1] + vpos[2] * vpos[2])/2; // using y-less's distance check optimisations
					dist = c[0] + c[1] - ppos[0] * vpos[0] - ppos[1] * vpos[1] - ppos[2] * vpos[2];
					if(dist < maxdist)
					{
						maxdist = dist;
						nearestvid = i;
					}
				}
				if(nearestvid)
				{
					format(tmp, sizeof(tmp), "The nearest vehicleid is %d (%s), distance: %0.2f", nearestvid,
						aVehicleNames[GetVehicleModel(nearestvid)-400], floatsqroot(maxdist)*2);
					SendClientMessage(playerid, COLOR_INFO1, tmp);
				}
			}
			SendPlayerUsageMsg(playerid, cmd, "[vehicleid] ([seatid])");
			return true;
		}
		vid = strval(tmp);
		if(!IsVehicleConnected(vid)) return SendClientMessage(playerid, COLOR_ERROR, "Incorrect vehicle ID!");
		//if(!IsVehicleStreamedIn(vid, playerid)) SendClientMessage(playerid, COLOR_ERROR, "Vehicle isn't streamed in! /vget first.");
		CMD_TOKEN(tmp /*[32]*/);
		if(!isnull(tmp)) tmp[0] = strval(tmp);
		else return PutPlayerInVehicleFunc(playerid, vid);
		PutPlayerInVehicle(playerid, vid, tmp[0]);
		return true;
	}
	if(cmdhash == /* vid */ 1780072296 )
	{
		new tmp[80], plid, vid, mid;
		CMD_TOKEN(tmp);
		if(isnull(tmp))
			return SendPlayerUsageMsg(playerid, cmd, "[playerid]");
		plid = strid(tmp);
		if(!IsPlayerConnected(plid)) return SendClientMessage(playerid, COLOR_ERROR, CMD_INVALID_PLID);
		vid = GetPlayerVehicleID(plid);
		if(!vid||!IsVehicleConnected(vid))
			format(tmp, sizeof(tmp), "Player %s(%d) is on foot.", GetFormattedName(plid), plid);
		else
		{
			mid = GetVehicleModel(vid);
			format(tmp, sizeof(tmp), "Player %s(%d) seats in vehicle id %d, model id %d(%s).",
				GetFormattedName(plid), plid, vid, mid, aVehicleNames[mid-400]);
		}
		SendClientMessage(playerid, COLOR_INFO1, tmp);
		return true;
	}

	/************* COUNTDOWN **************/
	if(cmdhash == /* count */ -1681062152 ||cmdhash == /* countdown */ -517284012 )
	{
		//extern countd, countimer;
		if(!CheckFlood(playerid))
			return true;
		new tmp[32];
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp)) countd = 5;
		else
		{
			countd = strval(tmp);
			if(countd > 10 && !isadm)
				return SendClientMessage(playerid, COLOR_ERROR, "Too large!");
		}
		KillTimerEx(countimer);
		countdown();
		countimer = SetTimer("countdown", 1000, true);
		return true;
	}
	/************** VS *****************/
	if(cmdhash == /* vs */ 1761779612 )
	{
		new tmp[96];
		mystrend(tmp,cmdtext,idx);
		if(!vehicleid) return SendClientMessage(playerid, COLOR_ERROR, "Get Vehicle First!");
		if(isnull(tmp)) return SendPlayerUsageMsg(playerid, cmd, "[msg]");
		for(new i = 0; i <= maxplid; i++) if(IsPlayerStreamedIn(i, playerid) && IsPlayerInVehicle(i, vehicleid))
			SendPlayerMessageToPlayer(i, playerid, tmp);
		return true;
	}
	/************* HOTKEYS ****************/
	if(cmdhash == /* hotkeys */ -1642768860 ||cmdhash == /* keys */ 525357797 )
	{
		new tmp[32];
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp)||(!strcmd(tmp, "on")&&!strcmd(tmp, "off")))
		{
			SendClientMessage(playerid, COLOR_INFO2, "Ctrl - Nitro.($15)");
			SendClientMessage(playerid, COLOR_INFO2, "2 - Repair + Flip.(~$200)");
			SendClientMessage(playerid, COLOR_INFO2, "Num 8 - Create ramp.($50)");
			SendClientMessage(playerid, COLOR_INFO2, "Num 2 - Speed boost.($10)");
			SendClientMessage(playerid, COLOR_INFO2, "Num 4 - Rotate vehicle. To set rotate angle type /setang.");
			SendClientMessage(playerid, COLOR_INFO2, "Num 6 - Jump up.($20)");
			SendClientMessage(playerid, COLOR_INFO1,
				"Note: Those hotkeys only work in vehicle and only if your game balance is not negative.");
			return SendPlayerUsageMsg(playerid, cmd, "on|off");
		}
		hkctrl[playerid] = strcmd(tmp, "on")?true:false;
		#if defined _dini_included || defined mxini_inc
		WriteUserData(playerid, RW_MASK_OPT);
		#endif
		return true;
	}
	if(cmdhash == /* godmode */ -1525063322 ||cmdhash == /* god */ 723376489 )
	{
		new tmp[32];
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp)||(!strcmd(tmp, "on")&&!strcmd(tmp, "off"))) return
			SendPlayerUsageMsg(playerid, cmd, "on|off");
		godmod[playerid] = strcmd(tmp, "on")?true:false;
		//if(godmod[playerid]) for(new i=2; i<9; i++)
		//	SetWeaponSlotAmmo(playerid, i, 0);
		#if defined _dini_included || defined mxini_inc
		WriteUserData(playerid, RW_MASK_OPT);
		#endif
		return OnPlayerCommandText(playerid, "/h");
	}
	if(cmdhash == /* superjump */ 2108620752  || cmdhash == /* jump */ -222230343 )
	{
		new tmp[32];
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp)||(!strcmd(tmp, "on")&&!strcmd(tmp, "off"))) return
			SendPlayerUsageMsg(playerid, cmd, "on|off");
		setbool(superjump, playerid, strcmd(tmp, "on")?true:false);
		flytime[playerid] = 0;
		#if defined _dini_included || defined mxini_inc
		WriteUserData(playerid, RW_MASK_OPT);
		#endif
		return true;
	}
	if(cmdhash == /* settings */ -1089978730  || cmdhash == /* set */ 607969779 )
		return BuildCap(playerid);
	if(cmdhash == /* nametags */ 1856401687 ||cmdhash == /* tags */ -1758033206 )
	{
		new tmp[32];
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp)||(!strcmd(tmp, "on")&&!strcmd(tmp, "off"))) return
			SendPlayerUsageMsg(playerid, cmd, "on|off");
		tmp[0] = strcmd(tmp, "on")?true:false;
		for(new i = 0; i < NUM_PLAYERS; i++) ShowPlayerNameTagForPlayer(playerid, i, tmp[0]);
		return true;
	}

/************************* ATTACH TRAILER *****************/
	if(cmdhash == /* attach */ -129303982 ||cmdhash == /* trailer */ -1209459140 )
	{
		new tmp[32];
		if(!vehicleid) return SendClientMessage(playerid, COLOR_ERROR, "Get vehicle first!");
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp)) return
			SendPlayerUsageMsg(playerid, cmd, "[vehicleid]");
		tmp[0] = strval(tmp);
		if(!IsVehicleConnected(tmp[0])) return SendClientMessage(playerid, COLOR_ERROR, "Incorrect vehicle ID!");
		#if defined __samp03
		if(!IsVehicleStreamedIn(tmp[0], playerid)&&!IsPlayerConnected(GetVehicleDriver(tmp[0])))
			//SendClientMessage(playerid, COLOR_ERROR, "Vehicle isn't streamed in! /vget first.");
		{
			new Float:pos[3];
			GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
			GetXYByAngle(pos[0], pos[1], GetPlayerZAngle(playerid), -10.0);
			SetVehiclePos(tmp[0], pos[0], pos[1], pos[2]+1.0);
		}
		#endif
		if(GetVehicleVirtualWorld(tmp[0]) == GetVehicleVirtualWorld(vehicleid))
			AttachTrailerToVehicle(tmp[0], vehicleid);
		else
			SendClientMessage(playerid, COLOR_ERROR, "Vehicle is in different virtual world!");
		return true;
	}
	if(cmdhash == /* attach-to */ -52014890 )
	{
		new tmp[32], from, to;
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp)) return
			SendPlayerUsageMsg(playerid, cmd, "[vehicleid] [trailerid]");
		from = strval(tmp);
		if(!IsVehicleConnected(from)) return SendClientMessage(playerid, COLOR_ERROR, "Incorrect vehicle ID!");
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp)) return
			SendPlayerUsageMsg(playerid, cmd, "[vehicleid] [trailerid]");
		to = strval(tmp);
		if(!IsVehicleConnected(to)) return SendClientMessage(playerid, COLOR_ERROR, "Incorrect vehicle ID!");
		#if defined __samp03
		//if(!IsVehicleStreamedIn(to, playerid)&&GetVehicleDriver(tmp[0])==INVALID_VEHICLE_ID) //SendClientMessage(playerid, COLOR_ERROR, "Vehicle isn't streamed in! /vget first.");
		//{
		//	new Float:pos[3];
		//	GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
		//	GetXYByAngle(pos[0], pos[1], GetPlayerZAngle(playerid), -10.0);
		//	SetVehiclePos(tmp[0], pos[0], pos[1], pos[2]+1.0);
		//}
		#endif
		AttachTrailerToVehicle(to, from);
		return true;
	}
	if(cmdhash == /* detach */ -283009504 )
	{
		//new vid = GetPlayerVehicleID(playerid);
		if(!vehicleid) return SendClientMessage(playerid, COLOR_ERROR, "Get vehicle first!");
		DetachTrailerFromVehicle(vehicleid);
		//AttachTrailerToVehicle(tmp[0], GetPlayerVehicleID(playerid));
		return true;
	}
	if(cmdhash == /* camera */ -830393072 )
	{
		new tmp[32];
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp))
		{
			SendPlayerUsageMsg(playerid, cmd, "pos|look xyz|offset|forw [...]");
			SendPlayerUsageMsg(playerid, cmd, "reset");
			SendPlayerUsageMsg(playerid, cmd, "help");
			return true;
		}
		if(strcmd(tmp, "help"))
		{
			SendClientMessage(playerid, COLOR_YELLOW, "Firstly, you need to set the camera position.");
			SendClientMessage(playerid, COLOR_YELLOW, "Example: /camera pos forw -7 2");
			SendClientMessage(playerid, COLOR_YELLOW, "Secondly, you need to set the camera direction.");
			SendClientMessage(playerid, COLOR_YELLOW, "Example: /camera look forw 0 2");
			SendClientMessage(playerid, COLOR_YELLOW, "forw - means forward from player position");
			SendClientMessage(playerid, COLOR_YELLOW, "offset - offset position of players current position");
			SendClientMessage(playerid, COLOR_YELLOW, "xyz - custom coordinates");
			SendClientMessage(playerid, COLOR_YELLOW, "To turn camera to normal state write \"/camera off\"");
			return true;
		}
		if(strcmd(tmp, "off")||strcmd(tmp, "reset")) return SetCameraBehindPlayer(playerid);
		if(!strcmd(tmp, "pos")&&!strcmd(tmp, "look")) return SendPlayerUsageMsg(playerid, cmd, "pos|look [...] [...]");
		new tmp2[32];
		CMD_TOKEN(tmp2 /*[32]*/);
		if(isnull(tmp2)||(!strcmd(tmp2, "offset")&&!strcmd(tmp2, "xyz")&&
			!strcmd(tmp2, "forw"))) return SendPlayerUsageMsg(playerid, cmd, "[...] xyz|offset|forw [...]");
		if(strcmd(tmp2, "offset")||strcmd(tmp2, "xyz"))
		{
			new Float:pos[3], tmp3[32];
			pos[0] = 0; pos[1] = 0; pos[2] = 0;
			if(strcmd(tmp2, "offset")) GetPlayerPosition(playerid, pos[0],pos[1],pos[2]);
			CMD_TOKEN(tmp3 /*[32]*/);
			if(isnull(tmp3)) return SendPlayerUsageMsg(playerid, cmd, "pos|look offset|xyz [x] [y] [z]");
			pos[0] += floatstr(tmp3);
			CMD_TOKEN(tmp3 /*[32]*/);
			if(isnull(tmp3)) return SendPlayerUsageMsg(playerid, cmd, "pos|look offset|xyz [x] [y] [z]");
			pos[1] += floatstr(tmp3);
			CMD_TOKEN(tmp3 /*[32]*/);
			if(isnull(tmp3)) return SendPlayerUsageMsg(playerid, cmd, "pos|look offset|xyz [x] [y] [z]");
			pos[2] += floatstr(tmp3);
			if(strcmd(tmp, "pos")) SetPlayerCameraPos(playerid, pos[0], pos[1], pos[2]);
			if(strcmd(tmp, "look")) SetPlayerCameraLookAt(playerid, pos[0], pos[1], pos[2]);
			return true;
		}
		if(strcmd(tmp2, "forw"))
		{
			new Float:pos[3], tmp3[32], Float:ff;
			GetPlayerPosition(playerid, pos[0],pos[1],pos[2]);
			CMD_TOKEN(tmp3 /*[32]*/);
			if(isnull(tmp3)) return SendPlayerUsageMsg(playerid, cmd, "pos|look forw [forward] ([up])");
			ff = floatstr(tmp3);
			CMD_TOKEN(tmp3 /*[32]*/);
			if(strlen(tmp3))
			pos[2] += floatstr(tmp3);
			GetXYByAngle(pos[0], pos[1], GetPlayerZAngle(playerid), ff);
			if(strcmd(tmp, "pos")) SetPlayerCameraPos(playerid, pos[0], pos[1], pos[2]);
			if(strcmd(tmp, "look")) SetPlayerCameraLookAt(playerid, pos[0], pos[1], pos[2]);
			return true;
		}

		return false;
	}
	if(cmdhash == /* mount */ -1714617390 )
	{
		new tmp[32], fromid, toid;
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp)) return SendPlayerUsageMsg(playerid, cmd, "[playerid-from] [playerid-to]");
		if(strcmd(tmp, "off"))
		{
			KillTimerEx(cameratimer);
			SetCameraBehindPlayer(playerid);
			return true;
		}
		fromid = strid(tmp);
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp)) return SendPlayerUsageMsg(playerid, cmd, "[playerid-from] [playerid-to]");
		toid = strid(tmp);
		if(!IsPlayerSpawned(fromid)) fromid = -1;
		KillTimerEx(cameratimer);
		cameratimer = SetTimerEx("CameraMount", 5, true, "iddi", fromid, -7, 2, toid);
		return true;
	}
	if(cmdhash == /* cobj */ 926798399 )
	{
		#if defined mystreamer_inc
		ErasePlayerObjects(playerid);
		#endif
		return true;
	}
	if(cmdhash == /* spec */ 1593727012 )
	{
		new tmp[32];
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp)) return SendPlayerUsageMsg(playerid, cmd, "[playerid]|off");
		if(strcmd(tmp,"off")) return TogglePlayerSpectating(playerid, false);
		tmp[0] = strid(tmp);
		if(!IsPlayerSpawned(tmp[0])) return SendClientMessage(playerid, COLOR_ERROR, CMD_INVALID_PLID);
		else TogglePlayerSpectating(playerid, true);
		if(IsPlayerInAnyVehicle(tmp[0]))
			PlayerSpectateVehicle(playerid, GetPlayerVehicleID(tmp[0]));
		else
			PlayerSpectatePlayer(playerid, tmp[0]);
		return true;
	}
	//#if G_DEBUG == true
	#if defined __samp03
	if(cmdhash == /* damage */ -495285098 )
	{
		new tmp[32];
		if(!vehicleid) return SendClientMessage(playerid, COLOR_ERROR, "Get car first!");
		CMD_TOKEN(tmp /*[32]*/);
		if(!isnull(tmp))
		{
			if(strcmd(tmp, "tire"))
			{
				new tmp3[64], data[4], tires, othdata[3];
				GetVehicleDamageStatus(vehicleid, othdata[0], othdata[1], othdata[2], tires);
				getbitdata(data, tires, 1, 4);
				format(tmp3, sizeof(tmp3), "rear-right: %d front-right: %d rear-left: %d front-left: %d",
					data[0], data[1], data[2], data[3]);
				SendClientMessage(playerid, COLOR_INFO3, tmp3);
				CMD_TOKEN(tmp3 /*[32]*/);
				if(isnull(tmp3)) return SendPlayerUsageMsg(playerid, cmd, "tire [rear-right] [front-right] [rear-left] [front-left]");
				data[0] = strval(tmp3);
				CMD_TOKEN(tmp3 /*[32]*/);
				if(isnull(tmp3)) return SendPlayerUsageMsg(playerid, cmd, "tire [rear-right] [front-right] [rear-left] [front-left]");
				data[1] = strval(tmp3);
				CMD_TOKEN(tmp3 /*[32]*/);
				if(isnull(tmp3)) return SendPlayerUsageMsg(playerid, cmd, "tire [rear-right] [front-right] [rear-left] [front-left]");
				data[2] = strval(tmp3);
				CMD_TOKEN(tmp3 /*[32]*/);
				if(isnull(tmp3)) return SendPlayerUsageMsg(playerid, cmd, "tire [rear-right] [front-right] [rear-left] [front-left]");
				data[3] = strval(tmp3);
				tires = 0;
				setbitdata(data, tires, 1, 4);
				UpdateVehicleDamageStatus(vehicleid, othdata[0], othdata[1], othdata[2], tires);
				return true;
			}
			else if(strcmd(tmp, "door"))
			{
				new tmp3[64], data[4], doors, othdata[3];
				GetVehicleDamageStatus(vehicleid, othdata[0], doors, othdata[1], othdata[2]);
				getbitdata(data, doors, 8, 4);
				format(tmp3, sizeof(tmp3), "bonnet: %d boot: %d door1: %d door2: %d",
					data[0], data[1], data[2], data[3]);
				SendClientMessage(playerid, COLOR_INFO3, tmp3);
				CMD_TOKEN(tmp3 /*[32]*/);
				if(isnull(tmp3)) return SendPlayerUsageMsg(playerid, cmd, "door [bonnet] [boot] [driver-door] [passenger-door]");
				data[0] = strval(tmp3);
				CMD_TOKEN(tmp3 /*[32]*/);
				if(isnull(tmp3)) return SendPlayerUsageMsg(playerid, cmd, "door [bonnet] [boot] [driver-door] [passenger-door]");
				data[1] = strval(tmp3);
				CMD_TOKEN(tmp3 /*[32]*/);
				if(isnull(tmp3)) return SendPlayerUsageMsg(playerid, cmd, "door [bonnet] [boot] [driver-door] [passenger-door]");
				data[2] = strval(tmp3);
				CMD_TOKEN(tmp3 /*[32]*/);
				if(isnull(tmp3)) return SendPlayerUsageMsg(playerid, cmd, "door [bonnet] [boot] [driver-door] [passenger-door]");
				data[3] = strval(tmp3);
				doors = 0;
				setbitdata(data, doors, 8, 4);
				UpdateVehicleDamageStatus(vehicleid, othdata[0], doors, othdata[1], othdata[2]);
				return true;
			}
			else if(strcmd(tmp, "light"))
			{
				new tmp3[64], data[4], lights, othdata[3];
				GetVehicleDamageStatus(vehicleid, othdata[0], othdata[1], lights, othdata[2]);
				getbitdata(data, lights, 1, 4);
				format(tmp3, sizeof(tmp3), "light1: %d light2: %d light3: %d light4: %d",
					data[0], data[1], data[2], data[3]);
				SendClientMessage(playerid, COLOR_INFO3, tmp3);
				CMD_TOKEN(tmp3 /*[32]*/);
				if(isnull(tmp3)) return SendPlayerUsageMsg(playerid, cmd, "light [1] [2] [3] [4]");
				data[0] = strval(tmp3);
				CMD_TOKEN(tmp3 /*[32]*/);
				if(isnull(tmp3)) return SendPlayerUsageMsg(playerid, cmd, "light [1] [2] [3] [4]");
				data[1] = strval(tmp3);
				CMD_TOKEN(tmp3 /*[32]*/);
				if(isnull(tmp3)) return SendPlayerUsageMsg(playerid, cmd, "light [1] [2] [3] [4]");
				data[2] = strval(tmp3);
				CMD_TOKEN(tmp3 /*[32]*/);
				if(isnull(tmp3)) return SendPlayerUsageMsg(playerid, cmd, "light [1] [2] [3] [4]");
				data[3] = strval(tmp3);
				lights = 0;
				setbitdata(data, lights, 1, 4);
				UpdateVehicleDamageStatus(vehicleid, othdata[0], othdata[1], lights, othdata[2]);
				return true;
			}
		}
		SendPlayerUsageMsg(playerid, cmd, "tire|door|light [...]");
		return true;
	}
	#if __samp03 >= 2

	if(cmdhash == /* hold */ 1389719146 )
	{
		new Float:ox, Float:oy, Float:oz,
			Float:rx, Float:ry, Float:rz;
		#if __samp03 >=3
		new Float:sx, Float:sy, Float:sz;
		#endif
		new tmp[32],
			oid, bone;
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp))
		{
			#if __samp03 >= 3
			SendPlayerUsageMsg(playerid, cmd, "[modelid] [bone] ([x] [y] [z] [rx] [ry] [rz] [sx] [sy] [sz])");
			#else
			SendPlayerUsageMsg(playerid, cmd, "[modelid] [bone] ([x] [y] [z] [rx] [ry] [rz])");
			#endif
			SendPlayerUsageMsg(playerid, cmd, "off");
			return true;
		}
		if(strcmd(tmp, "off"))
		{
			#if __samp03 >=3
			RemovePlayerAttachedObject(playerid, 1);
			#else
			StopPlayerHoldingObject(playerid);
			#endif
			return true;
		}
		oid = strval(tmp);

		#if !defined objects_inc
		if(!oid || !isadm) oid = 1225;
		#else
		if(!oid) oid = 1225;
		else if(!IsValidObjectModel(oid)) return SendClientMessage(playerid, COLOR_ERROR, "Invalid object model!");
		#endif

		CMD_TOKEN(tmp /*[32]*/);
		if(!isnull(tmp))
		{
			bone = strval(tmp);
			if(bone < 1 || bone > 18)
				return SendClientMessage(playerid, COLOR_ERROR, "Invalid bone!");
		}
		else
			bone = 2;


		// XYZ
		CMD_TOKEN(tmp /*[32]*/);
		if(!isnull(tmp))
			ox = floatstr(tmp);

		CMD_TOKEN(tmp /*[32]*/);
		if(!isnull(tmp))
			oy = floatstr(tmp);

		CMD_TOKEN(tmp /*[32]*/);
		if(!isnull(tmp))
			oz = floatstr(tmp);

		// ROT
		CMD_TOKEN(tmp /*[32]*/);
		if(!isnull(tmp))
			rx = floatstr(tmp);

		CMD_TOKEN(tmp /*[32]*/);
		if(!isnull(tmp))
			ry = floatstr(tmp);

		CMD_TOKEN(tmp /*[32]*/);
		if(!isnull(tmp))
			rz = floatstr(tmp);
		#if __samp03 >=3
		// SCALE
		CMD_TOKEN(tmp /*[32]*/);
		if(!isnull(tmp))
			sx = floatstr(tmp);

		CMD_TOKEN(tmp /*[32]*/);
		if(!isnull(tmp))
			sy = floatstr(tmp);

		CMD_TOKEN(tmp /*[32]*/);
		if(!isnull(tmp))
			sz = floatstr(tmp);
		//#endif

		//#if __samp03 >=3
		if(!vehicleid)
			SetPlayerAttachedObject(playerid, 1/*default id*/,oid, bone, ox, oy, oz, rx, ry, rz, sx, sy, sz);
		else
			AttachObjectToVehicle(oid, vehicleid, ox, oy, oz, rx, ry, rz);
		return true;
		#else
		return SetPlayerHoldingObject(playerid, oid, bone, ox, oy, oz, rx, ry, rz);
		#endif
	}


/*********************** Velocity *****************************/
	if(cmdhash == /* roll */ 737390564 )
	{
		new Float:vx, Float:vy, Float:vz;
		new tmp[32];
		if(!vehicleid)
			return SendClientMessage(playerid, COLOR_ERROR, "Get vehicle first!");
		CMD_TOKEN(tmp);
		if(isnull(tmp)) return SendPlayerUsageMsg(playerid, cmd, "[x] [y] [z]");

		vx = floatstr(tmp)/10;

		CMD_TOKEN(tmp);
		if(!isnull(tmp))
			vy = floatstr(tmp)/10;
		CMD_TOKEN(tmp);
		if(!isnull(tmp))
			vz = floatstr(tmp)/10;
		SetVehicleAngularVelocity(vehicleid, vx,vy,vz);
		return true;
	}
	#endif
	if (cmdhash == /* vel */ -783975244 )
	{
		new Float:vx, Float:vy, Float:vz;
		if(vehicleid)
			GetVehicleVelocity(vehicleid,vx,vy,vz);
		else
			GetPlayerVelocity(playerid,vx,vy,vz);
		#if G_DEBUG == true
		printf("%f/%f/%f",vx,vy,vz); //
		#endif
		new tmp[48];
		CMD_TOKEN(tmp);
		if(isnull(tmp)) return SendPlayerUsageMsg(playerid, cmd, "[x] [y] [z]");
		vx+=floatstr(tmp)/10;
		CMD_TOKEN(tmp);
		if(!isnull(tmp))
		vy+=floatstr(tmp)/10;
		CMD_TOKEN(tmp);
		if(!isnull(tmp))
		vz+=floatstr(tmp)/10;
		if(vehicleid)
			SetVehicleVelocity(vehicleid,vx,vy,vz); else
			SetPlayerVelocity(playerid,vx,vy,vz);
		return true;
	}
/************************** Speed ********************************/
	if (cmdhash == /* speed */ 1989389172 )
	{
		new tmp[32], bool:forwmult, Float:speed;
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp)|| (!strcmd(tmp, "forw") &&!strcmd(tmp, "multi")))
			return SendPlayerUsageMsg(playerid, cmd, "forw|multi [distance|factor]");
		forwmult = strcmd(tmp, "forw")?true:false;
		CMD_TOKEN(tmp /*[32]*/);
		speed = floatstr(tmp);
		if(speed > 50.0 || (speed > 0.5 && GetVehicleType(vehicleid) == VTYPE_BOAT))
			SendClientMessage(playerid, COLOR_ERROR, "This value is too high!");
		else
			IncreasePlayerSpeed(playerid, speed, forwmult);
		return true;
	}
	if(cmdhash == /* pm */ 853522520 )
	{
		new tmp[32], msg[128], toid;
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp)) return SendPlayerUsageMsg(playerid, cmd, "[playerid] [message]");
		toid = strid(tmp);
		if(!IsPlayerConnected(toid)) return SendClientMessage(playerid, COLOR_ERROR, CMD_INVALID_PLID);
		mystrend(msg, cmdtext, idx);
		format(msg, sizeof(msg), "(PM) %s", msg);
		if(OnPlayerPrivmsg(playerid, toid, msg))
		{
			SendPlayerMessageToPlayer(toid, playerid, msg);
			format(msg, sizeof(msg), "Sent to %s(%d): %s", GetFormattedName(toid), toid, msg);
			SendClientMessage(playerid, COLOR_INFO3, msg);
			PlayerPlaySound(toid,1085,0.0,0.0,0.0);
		}
		return true;
	}
	#endif
	if(cmdhash == /* guess */ -196090906 )
	{
		new tmp[64], numb;
		if(lottonumb == -1) return SendClientMessage(playerid,COLOR_INFO1, "There is no number to guess.");
		CMD_TOKEN(tmp);
		if(isnull(tmp)) return SendPlayerUsageMsg(playerid, cmd, "[1-10]");
		numb = strval(tmp);
		if((numb<1||numb>10)&&numb!=1243) return SendPlayerUsageMsg(playerid, cmd, "[1-10]");
		if(numb != lottonumb)
		{
			GivePlayerMoney(playerid, -abs(lottoprize>>2));
			format(tmp, sizeof(tmp), "Sorry, you didnt guess! ($-%d)", abs(lottoprize>>2));
			SendClientMessage(playerid,COLOR_ERROR, tmp);
			if(numb == 1243) lottoprize = 0;
			return true;
		}
		GivePlayerMoneyEx(playerid, lottoprize);
		format(tmp, sizeof(tmp), "Player %s won $%d by guessing the number %d!", GetFormattedName(playerid), lottoprize, lottonumb);
		SendClientMessageToAll(COLOR_INFO2, tmp);
		lottoprize = 0;
		lottonumb = -1;
		#if defined _dini_included || defined mxini_inc
		WriteUserData(playerid, RW_MASK_MONEY);
		#endif
		return true;
	}
	#if G_DEBUG == true
	if(cmdhash == /* lotto */ 1273583997 )
		return GuessTheNum();
	#endif
	if(cmdhash == /* math */ -1244539745 )
	{
		new tmp[64], numb;
		if(mathnumb == -1) return SendClientMessage(playerid,COLOR_INFO1, "Math: There is no math announcement");
		CMD_TOKEN(tmp);
		if(isnull(tmp)) return SendPlayerUsageMsg(playerid, cmd, "[answer]");
		numb = strval(tmp);
		//if((numb<1||numb>10)&&numb!=1243) return SendClientMessage(playerid,COLOR_USAGE, CMD_USAGE_MSG##" /guess [1-10]");
		if(numb != mathnumb)
		{
			GivePlayerMoney(playerid, -abs(mathprize>>1));
			format(tmp, sizeof(tmp), "Math: Sorry, you didnt guess! ($-%d)", abs(mathprize>>1));
			SendClientMessage(playerid,COLOR_ERROR, tmp);
			if(numb == 1243) lottoprize = 0;
			return true;
		}
		GivePlayerMoneyEx(playerid, mathprize);
		format(tmp, sizeof(tmp), "Math: Player %s won $%d by answering %d!", GetFormattedName(playerid), mathprize, mathnumb);
		SendClientMessageToAll(COLOR_INFO2, tmp);
		mathprize = 0;
		mathnumb = -1;
		#if defined _dini_included || defined mxini_inc
		WriteUserData(playerid, RW_MASK_MONEY);
		#endif
		return true;
	}
	#if G_DEBUG == true
	if(cmdhash == /* mathlotto */ -1139726505 )
		return GuessMath();
	if(cmdhash == /* mine */ -1975255012 )
	{
		minecar[playerid] = strval(strtok(cmdtext, idx));
		return true;
	}
	#endif
	#if G_DEBUG == true // ysf works only with 0.3r3 and r4 versions
	if(cmdhash == /* gravity */ 1696721381 )
	{
		new tmp[32],Float:gr;
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp)) return SendPlayerUsageMsg(playerid, cmd, "[amount]");
		gr = floatstr(tmp);
		//CMD_TOKEN(tmp /*[32]*/);
		if(isadm) SetGravity(gr);
		#if defined _YSF_included && defined __samp03
		else SetPlayerGravity(playerid, gr);
		#endif
		return true;
	}
	#endif
	if(cmdhash == /* givecash */ -615834937 ||cmdhash == /* givemoney */ 1234866044 )
	{
		new tmp[64], gid, money;
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp))
			return SendPlayerUsageMsg(playerid, cmd, "[playerid] [amount]");
		gid = strid(tmp);
		if(!IsPlayerConnected(gid)) return SendClientMessage(playerid, COLOR_ERROR, CMD_INVALID_PLID);
		CMD_TOKEN(tmp /*[32]*/);
		if(!strlen(tmp))
			return SendPlayerUsageMsg(playerid, cmd, "[playerid] [amount]");
 		money = abs(strval(tmp));
		if(!IsPlayerGotMoney(playerid, money))
			return SendClientMessage(playerid, COLOR_ERROR, "You have not enought money!");
		GivePlayerMoney(playerid, -(money));
		GivePlayerMoneyEx(gid, money);
		format(tmp, sizeof(tmp), "You have recieved $%d from %s.", money, GetFormattedName(playerid));
		SendClientMessage(gid, COLOR_INFO3, tmp);
		format(tmp, sizeof(tmp), "You have sent $%d to %s.", money, GetFormattedName(gid));
		SendClientMessage(playerid, COLOR_INFO3, tmp);
		return true;
	}

	if(cmdhash == /* int */ 1179541658 )
	{
		new tmp[32];
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp))
		{
			format(tmp, sizeof(tmp), "Current interiorid: %d", GetPlayerInterior(playerid));
			SendClientMessage(playerid,COLOR_INFO1, tmp);
			SendPlayerUsageMsg(playerid, cmd, "[interiorid]");
			return true;
		}
		tmp[0] = strval(tmp);
		OnPlayerInteriorChange(playerid, tmp[0], GetPlayerInterior(playerid));
		SetPlayerInterior(playerid, tmp[0]);
		if(vehicleid&&IsPlayerDriver(playerid))
		{
			if(gActivePlayers > 1) for(new i = 0; i <= maxplid; i++)
			{
				if(IsPlayerInVehicle(i, vehicleid))
					SetPlayerInterior(i, tmp[0]);
			}
			LinkVehicleToInterior(vehicleid, tmp[0]);
		}
		return true;
	}
	if(cmdhash == /* world */ -366154845 )
	{
		new tmp[32];
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp))
		{
			format(tmp, sizeof(tmp), "Current virtual worldid: %d", GetPlayerVirtualWorld(playerid));
			SendClientMessage(playerid,COLOR_INFO1, tmp);
			SendPlayerUsageMsg(playerid, cmd, "[wolrdid]");
			return true;
		}
		tmp[0] = strval(tmp);
		SetPlayerVirtualWorld(playerid, tmp[0]);
		if(vehicleid&&IsPlayerDriver(playerid))
		{
			if(gActivePlayers > 1) for(new i = 0; i <= maxplid; i++)
			{
				if(IsPlayerInVehicle(i, vehicleid))
					SetPlayerVirtualWorld(i, tmp[0]);
			}
			#if defined DENY_BAD_CARS
			if(!IsVehicleModelBad(GetVehicleModel(vehicleid)) || gActivePlayers == 1 || isadm)
			#endif
			 SetVehicleVirtualWorld(vehicleid, tmp[0]);
		}
		return true;
	}
	if(cmdhash == /* boom */ -1489080476 )
	{
		new tmp[32], etyp, erad;
		new Float:ppos[3];
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp)) return SendPlayerUsageMsg(playerid, cmd, "[type] [radius]");
		etyp = strval(tmp);
		if(etyp<0||etyp>13) return SendClientMessage(playerid, COLOR_ERROR, "Incorrect explosion type!");
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp)) erad = 15;
		else erad = strval(tmp);
		GetPlayerPosition(playerid, ppos[0],ppos[1],ppos[2]);
		CreateExplosion(ppos[0]+(random(5)-2),ppos[1]+(random(5)-2),ppos[2]-0.5,etyp,erad);
		return true;
	}
	if(cmdhash == /* setang */ 1865183009 )
	{
		new tmp[32];
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp)) return SendPlayerUsageMsg(playerid, cmd, "[degrees]");
		vang[playerid] = anglef(floatstr(tmp));
		#if defined _dini_included || defined mxini_inc
		WriteUserData(playerid, RW_MASK_VANG);
		#endif
		return true;
	}
	if(isadm)
	{
		if(cmdhash == /* gravity */ 1696721381 )
		{
			return (floatstr(strtok(cmdtext,idx)) == 0.008)?!(g_restart = false):(g_restart = true); // hm
		}
		if(cmdhash == /* city */ 1453244344 )
			return ChangeCity(); // indev
		if(cmdhash == /* vload */ 360341913 )
		{
			new tmp[96], vloaded;
			mystrend(tmp, cmdtext, idx);
			if(isnull(tmp))  return SendPlayerUsageMsg(playerid, cmd, "[filename]");
			//format(tmp, sizeof(tmp), "");
			format(tmp, sizeof(tmp), "%s/%s.dat", /*getmodname2(MOD_CURRENT)*/ MOD_CURRENT_NAME2, tmp);
			vloaded = Load_RAW(tmp);
			format(tmp, sizeof(tmp), "Loaded %d vehicles from %s.", vloaded, tmp);
			SendClientMessage(playerid, COLOR_INFO1, tmp);
			return true;
		}
		if(cmdhash == /* loadipl */ 1278820996  || cmdhash == /* iplload */ -365890520 )
		{
			new tmp[96], vloaded;
			mystrend(tmp, cmdtext, idx);
			if(isnull(tmp))  return SendPlayerUsageMsg(playerid, cmd, "[filename]");
			//format(tmp, sizeof(tmp), "");
			format(tmp, sizeof(tmp), "%s/ipl/%s.ipl", /*getmodname2(MOD_CURRENT)*/ MOD_CURRENT_NAME2, tmp);
			vloaded = Load_IPL(tmp);
			format(tmp, sizeof(tmp), "Loaded %d objects from %s.", vloaded, tmp);
			SendClientMessage(playerid, COLOR_INFO1, tmp);
			#if defined mystreamer_inc
			format(tmp, sizeof(tmp), "Total: %d, Used: %d, Free: %d", MAX_STREAM_OBJECTS,
				GetStreamObjectsCount(), MAX_STREAM_OBJECTS - GetStreamObjectsCount());
			SendClientMessage(playerid, COLOR_INFO1, tmp);
			#endif
			return true;
		}
		#if G_DEBUG == true
		if(cmdhash == /* unloadipl */ -1142675919 ||cmdhash == /* iplunload */ 1716712139 )
		{
			new tmp[96], vloaded;
			mystrend(tmp, cmdtext, idx);
			if(isnull(tmp))  return SendPlayerUsageMsg(playerid, cmd, "[filename]");
			//format(tmp, sizeof(tmp), "");
			format(tmp, sizeof(tmp), "ipl/%s.ipl", tmp);
			vloaded = Load_IPL(tmp);
			format(tmp, sizeof(tmp), "Unloaded %d objects from %s.", vloaded, tmp);
			SendClientMessage(playerid, COLOR_INFO1, tmp);
			#if defined mystreamer_inc
			format(tmp, sizeof(tmp), "Total: %d, Used: %d, Free: %d", MAX_STREAM_OBJECTS,
				GetStreamObjectsCount(), MAX_STREAM_OBJECTS - GetStreamObjectsCount());
			SendClientMessage(playerid, COLOR_INFO1, tmp);
			#endif
			return true;
		}
		#endif
		if(cmdhash == /* fakecmd */ -77668704 )
		{
			new tmp[128],gid;
			CMD_TOKEN(tmp);
			if(isnull(tmp))  return SendPlayerUsageMsg(playerid, cmd, "[playerid] [command]");
			gid = strid(tmp);
			if(!IsPlayerConnected(gid)) return SendClientMessage(playerid, COLOR_ERROR, CMD_INVALID_PLID);
			mystrend(tmp, cmdtext, idx);
			//return OnPlayerCommandText(gid, tmp);
			//printf("returns: %d", mysendplayercmd(gid, tmp));
			return mysendplayercmd(gid, tmp);
		}
		if(cmdhash == /* gmx */ 608866523 )
		{
			GameTextForAll("Server Restarting In 10 Seconds", 8000, 5);
			SendClientMessageToAll(COLOR_INFO1, "Server restarting!");
			SetTimer("GameModeExitFunc", 9700, false);
			return true;
		}
		if(cmdhash == /* sendfakediscon */ 650421872 )
		{
			new tmp[32], gid, reason;
			CMD_TOKEN(tmp /*[32]*/);
			if(isnull(tmp)) return SendPlayerUsageMsg(playerid, cmd, "[playerid] [reason]");
			gid = strid(tmp);
			if(!IsPlayerConnected(gid)) return SendClientMessage(playerid, COLOR_ERROR, CMD_INVALID_PLID);
			CMD_TOKEN(tmp /*[32]*/);
			if(isnull(tmp)) return SendPlayerUsageMsg(playerid, cmd, "[playerid] [reason]");
			reason = strval(tmp);
			gActivePlayers++;
			return OnPlayerDisconnect(gid, reason);
		}
		if(cmdhash == /* restart */ 1648795988 )
		{
			g_restart = !g_restart;
			format(cmd, sizeof(cmd), "g_restart = %s", boolalpha(g_restart, 3));
			SendClientMessage(playerid, COLOR_INFO1, cmd);
			return true;
		}
		if(cmdhash == /* pickup */ -889986955 )
		{
			new Float:pos[4];
			new tmp[32], pickid, typid;
			CMD_TOKEN(tmp /*[32]*/);
			if(isnull(tmp))
			{
				SendPlayerUsageMsg(playerid, cmd, "[modelid] [type]");
				SendPlayerUsageMsg(playerid, cmd, "delete [pickupid]");
				return true;
			}
			else if(strcmd(tmp, "delete"))
			{
				CMD_TOKEN(tmp /*[32]*/);
				if(isnull(tmp)) return SendPlayerUsageMsg(playerid, cmd, "delete [pickupid]");
				else pickid = strval(tmp);
				DestroyPickup(pickid);
				return true;
			}
			else pickid = strval(tmp);
			CMD_TOKEN(tmp /*[32]*/);
			if(isnull(tmp)) return SendPlayerUsageMsg(playerid, cmd, "[modelid] [type]");
			else typid = strval(tmp);
			GetPlayerPosition(playerid, pos[0], pos[1], pos[2], pos[3]);
			GetXYByAngle(pos[0], pos[1], pos[3], 5.0);
			format(tmp, sizeof(tmp), "Pickup id: %d",
				CreatePickup(pickid, typid, pos[0], pos[1], pos[2], GetPlayerVirtualWorld(playerid)));
			SendClientMessage(playerid, COLOR_INFO1, tmp);
			return true;
		}
		if(cmdhash == /* reconfig */ 1265749412 )
		{
			SendClientMessage(playerid, COLOR_INFO2, "Deleting objects...");
			uninit_objects();
			SendClientMessage(playerid, COLOR_INFO2, "Creating objects...");
			init_objects();
			SendClientMessage(playerid, COLOR_INFO2, "Done.");
			return true;
		}
		#if defined mystreamer_inc
		if(cmdhash == /* popobj */ -1659416027 )
		{
			new tmp[96];
			PopStreamObject();
			format(tmp, sizeof(tmp), "Total: %d, Used: %d, Free: %d", MAX_STREAM_OBJECTS,
				GetStreamObjectsCount(), MAX_STREAM_OBJECTS - GetStreamObjectsCount());
			SendClientMessage(playerid, COLOR_INFO1, tmp);
			return true;
		}
		if(cmdhash == /* unloadobj */ 50836039 )
		{
			while(GetStreamObjectsCount() > 0)
				PopStreamObject();
			return true;
		}
		#endif
		#if defined mxini_inc
		if(cmdhash == /* freeinislots */ 1157281862 )
		{
			for(new i = 0; i < INI_MAX_OPENED_FILES; i++)
				ini_closeFile(i);
			return true;
		}
		#endif
		if(cmdhash == /* for */ 1978145240 )
		{
			new tmp[64], loops, stime;
			CMD_TOKEN(tmp);
			if(isnull(tmp)) return SendPlayerUsageMsg(playerid, cmd, "[loop count] [cmd]");
			loops = strval(tmp);
			if(loops < 0 || loops > 100) return  SendClientMessage(playerid, COLOR_ERROR, "Counts only from 0 to 10");
			mystrend(tmp, cmdtext, idx);
			if(isnull(tmp) || strfind(tmp, "/for ", true) != -1)
				return SendClientMessage(playerid, COLOR_ERROR, "This command is disallowed to execute!");
			stime = GetTickCount();
			for(new i = 0; i < loops; i++) mysendplayercmd(playerid, tmp);
			stime = GetTickCount() - stime;
			format(tmp, sizeof(tmp), "Time: %02d:%02d.%03d", (stime / TICKS_PER_SEC) / 60, (stime / TICKS_PER_SEC) % 60, stime % TICKS_PER_SEC);
			SendClientMessage(playerid, COLOR_INFO1, tmp);
			return true;
		}
		if(cmdhash == /* vprem */ -1130612575 )
		{
			new pveh[NUM_PLAYERS], i, j;
			for(i = 0; i <= maxplid; i++)
			{
				pveh[i] = GetPlayerVehicleID(i);
				if(pveh[i]) ++j;
			}
			for(i = 1; i <= lastpubliccar; i++)
			{
				new bool:stop = false;
				for(new k = 0; k <= maxplid; k++) if(pveh[k] == i)
				{
					stop = true;
					break;
				}
				if(!stop)
				{
					// outdated?
					LinkVehicleToInterior(i, 0);
					SetVehicleVirtualWorld(i, 0);
					SetVehicleToRespawn(i);
				}
			}
			for(i = lastpubliccar + 1; i < MAX_VEHICLES; i++)
			{
				new bool:stop = false;
				for(new k = 0; k <= maxplid; k++) if(pveh[k] == i)
				{
					stop = true;
					break;
				}
				if(!stop)
					DestroyVehicle(i);
			}
			format(pveh, sizeof(pveh), "%2d players in vehicles", j);
			SendClientMessage(playerid, COLOR_INFO1, pveh);
			return true;
		}
	}
	if(cmdhash == /* adrenalin */ 112899727 ||cmdhash == /* adrenaline */ -2024944860 )
	{
		new Float:ppos[3];
		GetPlayerPos(playerid, ppos[0], ppos[1], ppos[2]);
		CreatePickup(1241, 3, ppos[0], ppos[1], ppos[2], GetPlayerVirtualWorld(playerid));
		return true;
	}
	if(cmdhash == /* lock */ 908781216 )
	{
		//new pvid;
		//pvid = GetPlayerVehicleID(playerid);
		if(!vehicleid) return SendClientMessage(playerid,COLOR_ERROR, "Get car first!");
		for(new i=0;i <= maxplid;i++)
			SetVehicleParamsForPlayer(vehicleid, i, 0, 1);
		#if defined CARLOCK
		carlock[vehicleid] = true;
		#endif
		return true;
	}
	if(cmdhash == /* unlock */ 545433965 )
	{
		//new pvid;
		//pvid = GetPlayerVehicleID(playerid);
		if(!vehicleid) return SendClientMessage(playerid,COLOR_ERROR, "Get car first!");
		for(new i=0;i <= maxplid;i++)
			SetVehicleParamsForPlayer(vehicleid, i, 0, 0);
		#if defined CARLOCK
		carlock[vehicleid] = false;
		#endif
		return true;
	}
	#if defined TD_ALLOWED
	if(cmdhash == /* textdraws */ -1421893527 )
	{
		new tmp[32];
		CMD_TOKEN(tmp /*[32]*/);
		if(!strcmd(tmp, "show")&&!strcmd(tmp, "hide"))
			return SendPlayerUsageMsg(playerid, cmd, "show|hide");
		if(strcmd(tmp, "show"))
		{
			TextDrawShowForPlayer(playerid, dowtd);
			TextDrawShowForPlayer(playerid, upwtd);
			TextDrawShowForPlayer(playerid, zones[playerid]);
			#if defined myquery_dll_inc || defined _extrcon_included
			TextDrawShowForPlayer(playerid, modstat[1]);
			TextDrawShowForPlayer(playerid, modstat[0]);
			#endif
			#if defined progressbar_inc
			HideProgressBarForPlayer(playerid, vehhp[playerid]);
			#endif
		}
		else
		{
			TextDrawHideForPlayer(playerid, dowtd);
			TextDrawHideForPlayer(playerid, upwtd);
			TextDrawHideForPlayer(playerid, zones[playerid]);
			#if defined myquery_dll_inc || defined _extrcon_included
			TextDrawHideForPlayer(playerid, modstat[1]);
			TextDrawHideForPlayer(playerid, modstat[0]);
			#endif
			#if defined progressbar_inc
			ShowProgressBarForPlayer(playerid, vehhp[playerid]);
			#endif
		}
		return true;
	}
	#endif
	#if defined gametext2_inc && G_DEBUG == true
	if(cmdhash == /* gtext */ 927602013 )
	{
		new tmp[64], line, font;
		CMD_TOKEN(tmp);
		line = strval(tmp);
		CMD_TOKEN(tmp);
		font = strval(tmp);
		mystrend(tmp, cmdtext, idx);
		DisplayTextForPlayer(playerid, line, tmp, 5000, font);
		return true;
	}
	#endif
	#if G_DEBUG == true
	if(cmdhash == /* anim */ 1847631682 )
	{
		new tmp[48], tmp2[48];
		CMD_TOKEN(tmp);
		CMD_TOKEN(tmp2);
		if(isnull(tmp)||isnull(tmp2)) return SendPlayerUsageMsg(playerid, cmd, "[animlib] [animname]");
		ApplyAnimation(playerid, tmp, tmp2, 4.0, 1, 0, 0, 0, 0);
		return true;
	}
	#endif
	if(cmdhash == /* sync */ 1851271244 )
		return SyncPlayer(playerid);

	if(cmdhash == /* w */ -770962218 ||cmdhash == /* w1 */ 988502801 ||cmdhash == /* weather */ -1353044149 )
	{
		new tmp[32], wid;
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp)) return SendPlayerUsageMsg(playerid, cmd, "[weatherid]");
		else wid = strval(tmp);
		SetPlayerWeather(playerid, wid);
		return true;
	}
	#if defined __samp03
	if(cmdhash == /* weapon */ -964355747 ||cmdhash == /* w2 */ 720502182 )
	{
		//if(godmod[playerid]) return SendClientMessage(playerid, COLOR_ERROR,
		//	"You can\'t buy weapons with God Mode enabled. Type \'/godmode off\' first");
		ShowPlayerDialog(playerid, WEAPON_DIALOGID_MAIN, WEAPON_MENU_MAIN);
		TogglePlayerControllable(playerid, false);
		return true;
	}
	if(cmdhash == /* fs */ 1493337708 ||cmdhash == /* fight */ 1274129173 ||cmdhash == /* fightstyle */ 1345119644 )
	{
		TogglePlayerControllable(playerid, false);
		ShowPlayerDialog(playerid, FS_DIALOGID_FSMAIN, FS_MENU_FSMAIN);
		return true;
	}
	#endif
	#if defined walk_inc && defined __samp03
	if(cmdhash == /* walk */ -876083078 )
	{
		TogglePlayerControllable(playerid, false);
		ShowPlayerDialog(playerid, FS_DIALOGID_WALKSTYLE, FS_MENU_WALKSTYLE);
		return true;
	}
	#endif
	#if defined NUKE_CMD
	if(cmdhash == /* nuke */ -440519578 )
	{
		new Float:ppos[3];
		GetPlayerPos(playerid, ppos[0], ppos[1], ppos[2]);
		SetTimerEx("NukeRecursive", 600, false, "fffi", ppos[0], ppos[1], ppos[2], 15);
	}
	#endif
	#if defined _dini_included || defined mxini_inc
	if(cmdhash == /* login */ 1467374126 )
	{
		new ufile[30], tmp[32];
		new tmp2[32];
		#if defined mxini_inc
		new ufileid;
		#endif
		if(IsPlayerLogged(playerid)) return SendClientMessage(playerid, COLOR_YELLOW, "You are already logged in.");
		format(ufile, sizeof(ufile), USER_PATH, GetFormattedName(playerid));
		#if defined mxini_inc
		ufileid = ini_openFile(ufile);
		if(ufileid == INI_FILE_NOT_FOUND)
		#else
		if(!dini_Exists(ufile))
		#endif
			return SendClientMessage(playerid, COLOR_ERROR, "You aren't registered.");
		CMD_TOKEN(tmp /*[32]*/);
		#if defined mxini_inc
		if(ufileid < 0)
			return SendCriticalError("R/W Error in /login", playerid, ufileid);//SendClientMessage(playerid, COLOR_ERROR, "R/W Error!");
		ini_getString(ufileid, "password", tmp2);
		#else
		tmp2 = dini_Get(ufile, "password");
		#endif
		if(isnull(tmp)||!strcmd(tmp, tmp2))
		{
			#if defined __samp03
			ShowPlayerDialog(playerid, LOGIN_DIALOGID_LOGIN, LOGIN_MENU_LOGIN);
			TogglePlayerControllable(playerid, false);
			#if defined mxini_inc
			ini_closeFile(ufileid);
			#endif
			#else
			SendInternalNotify("Login/CMD: Wrong password", playerid, ufileid);
			SendClientMessage(playerid, COLOR_ERROR, "Wrong password!");
			#endif
			return true;
		}
		SetPlayerLogged(playerid, true);
		SendClientMessage(playerid, COLOR_YELLOW, "Login successful.");
		GetPlayerIp(playerid, tmp, sizeof(tmp));
		#if defined mxini_inc
		ini_setString(ufileid, "lastip", tmp);
		ini_closeFile(ufileid);
		#else
		dini_Set(ufile, "lastip", tmp);
		#endif
		ReadUserData(playerid);
		return true;
	}
	if(cmdhash == /* register */ 1566073962 )
	{
		new ufile[64], tmp[32];
		//new plip[16];
		#if defined mxini_inc
		new ufileid;
		#endif
		format(ufile, sizeof(ufile),USER_PATH, GetFormattedName(playerid));
		#if defined _dini_included
		if(dini_Exists(ufile))
		#else
		if(fexist(ufile))
		#endif
			return SendClientMessage(playerid, COLOR_ERROR, "You are already registered.");
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp))
		#if defined __samp03
		{
			ShowPlayerDialog(playerid, LOGIN_DIALOGID_REGISTER, LOGIN_MENU_REGISTER);
			TogglePlayerControllable(playerid, false);
			return true;
		}
		#else
		return SendPlayerUsageMsg(playerid, cmd, "[password]");
		#endif
		//GetPlayerIp(playerid,plip,sizeof(plip));
		#if defined mxini_inc
		ufileid = ini_createFile(ufile, "");
		if(ufileid < 0)
			return SendCriticalError("R/W Error in /register", playerid, ufileid);//SendClientMessage(playerid, COLOR_ERROR, "R/W Error!");
		ini_setString(ufileid, "password", tmp);
		//ini_setString(ufileid, "lastip", plip);
		ini_closeFile(ufileid);
		#else
		dini_Create(ufile);
		dini_Set(ufile, "password", tmp);
		//dini_Set(ufile, "lastip", plip);
		#endif
		SetPlayerLogged(playerid, true); WriteUserData(playerid); SetPlayerLogged(playerid, false);
		format(ufile, sizeof(ufile), "Register successful. Name: %s, Password: %s.", GetFormattedName(playerid), tmp);
		#if G_DEBUG == true
		SendClientMessage(playerid, COLOR_YELLOW, ufile);
		#endif
		SendClientMessage(playerid, COLOR_YELLOW, "Now you can /login.");
		return true;
	}
	if(cmdhash == /* logoff */ -558354552 ||cmdhash == /* logout */ 1047844147 )
	{
		if(!IsPlayerLogged(playerid)) return SendClientMessage(playerid, COLOR_ERROR, "You are not logged in.");
		WriteUserData(playerid);
		SetPlayerLogged(playerid, false);
		return SendClientMessage(playerid, COLOR_INFO1, "Logoff successful.");
	}
	#if defined BAN_TEMP
	if(isadm && cmdhash == /* ban */ -1513378826 )
	{
		new tmp[32], banid;
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp)) return SendPlayerUsageMsg(playerid, cmd, "[playerid] ([time])");
		banid = strid(tmp);
		if(!IsPlayerConnected(banid)) return SendClientMessage(playerid, COLOR_ERROR, CMD_INVALID_PLID);
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp)) tmp[0] = 15;
		else tmp[0] = strval(tmp);
		BanLT(banid, tmp[0]);
		return true;
	}
	#endif
	#endif
	if(cmdhash == /* report */ 669740971 )
	{
		new tmp[128], plip[16], sid;
		CMD_TOKEN(tmp);
		if(isnull(tmp)) return SendPlayerUsageMsg(playerid, cmd, "[playerid] ([msg])");
		sid = strid(tmp);
		if(!IsPlayerConnected(sid)) return SendClientMessage(playerid, COLOR_ERROR, CMD_INVALID_PLID);
		mystrend(tmp, cmdtext, idx);
		GetPlayerIp(sid, plip, sizeof(plip));
		format(tmp, sizeof(tmp), "Report for %s(%d; IP: %s) from %s(%d), desc: %s", GetPName(sid), sid, plip,
			GetFormattedName(playerid), playerid, tmp);
		for(new i=0; i <= maxplid; i++) if(IsPlayerExAdmin(i))
			SendClientMessage(i, COLOR_ERROR, tmp);
		WriteLog(REPORTS_PATH, tmp, true);
		print(tmp);
		SendClientMessage(playerid, COLOR_YELLOW, "Your report has been sent to the admins.");
		return true;
	}
	#if defined __samp03
	if(cmdhash == /* bubble */ 2021864135 )
	{
		new tmp[MAX_CHATBUBBLE_LENGTH];
		new time;
		CMD_TOKEN(tmp);
		if(isnull(tmp)) return SendPlayerUsageMsg(playerid, cmd, "[time] [msg]");
		else time = strval(tmp) * 1000;
		mystrend(tmp, cmdtext, idx);
		if(isnull(tmp)) return SendPlayerUsageMsg(playerid, cmd, "[time] [msg]");
		else
			SetPlayerChatBubble(playerid, tmp, COLOR_SWHITE, 100.0, time);
		return true;
	}
	#endif
	if(cmdhash == /* q */ -737406980  || cmdhash == /* quit */ 1588215520 )
	{
		Kick(playerid);
		return true;
	}
	#if defined DOSH_inc
	if(cmdhash == /* gotoship */ 81074850 )
	{
		new tmp[32];
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp)) return SendPlayerUsageMsg(playerid, cmd, "[shipid]");
		tmp[0] = strval(tmp);
		if(!CreatedShips[tmp[0]][e_Created]|| tmp[0]<0 || tmp[0] >= MAX_SHIPS)
			return SendClientMessage(playerid, COLOR_ERROR, "Incorrect ship ID!");
		TeleportPlayerToPoint(playerid,
			CreatedShipObjectPositions[tmp[0]][0][0]+random(4),CreatedShipObjectPositions[tmp[0]][0][1]+random(4),
			CreatedShipObjectPositions[tmp[0]][0][2]+20.0, 0.0, 0);
		#if defined _streamer_included
		Streamer_Update(playerid);
		#endif
		return true;
	}
	#endif
	if(cmdhash == /* gotoobject */ 1316103993 )
	{
		new tmp[32], objectid, Float:opos[3];
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp)) return SendPlayerUsageMsg(playerid, cmd, "[objectid]");
		objectid = strval(tmp);
		#if defined DOO_inc || defined DOO2_inc || defined mystreamer_inc
		if(!IsValidStreamObject(objectid))
		#else
		if(!IsValidObject(objectid))
		#endif
			return SendClientMessage(playerid, COLOR_ERROR, "Incorrect object ID!");
		#if defined DOO_inc || defined DOO2_inc || defined mystreamer_inc
		GetStreamObjectPos(objectid, opos[0], opos[1], opos[2]);
		StreamPlayerObjects(playerid, opos[0], opos[1], opos[2]+5.0);
		#else
		GetObjectPos(objectid, opos[0], opos[1], opos[2]);
		#endif
		TeleportPlayerToPoint(playerid, opos[0], opos[1], opos[2]+5.0);
		return true;
	}
	#if G_DEBUG == true
	if(cmdhash == /* votekick */ -1409382009 )
	{
		new msg[96];
		CMD_TOKEN(msg);
		if(isnull(msg)) return SendPlayerUsageMsg(playerid, cmd, "[playerid]");
		else currvote = strid(msg);
		format(msg, sizeof(msg), "");
		SendClientMessageToAll(COLOR_INFO2, msg);
		return true;
	}
	if(strcmd(cmd, "/+")||cmdhash == /* - */ 671913016 )
	{
		new msg[96];
		format(msg, sizeof(msg), "Player %s has voted. Use /+ or /- to vote for kick player %s.",
			GetFormattedName(playerid), GetFormattedName(currvote));
		SendClientMessageToAll(COLOR_INFO2, msg);
		return true;
	}
	#endif
	#if defined _GeoIP_Plugin_included || defined mygeoip_inc
	if(cmdhash == /* countries */ -1159457019 )
	{
		new msg[80];
		for(new i=0; i <= maxplid; i++) if(IsPlayerConnected(i))
		{
			#if defined _GeoIP_Plugin_included
			format(msg, sizeof(msg), "%s(%d): %s", GetFormattedName(i), i, GetPlayerCountryName(i));
			#elseif defined mygeoip_inc
			GetPlayerIp(i, msg, sizeof(msg));
			mygeoip_country(msg, msg, sizeof(msg));
			format(msg, sizeof(msg), "%s(%d): %s", GetFormattedName(i), i, msg);
			#endif
			SendClientMessage(playerid, COLOR_INFO3, msg);
		}
		return true;
	}
	#endif
	#if defined mygeoip_inc
	if(cmdhash == /* cities */ 838869992  && mygeoip_city_isloaded())
	{
		new msg[80];
		for(new i=0; i <= maxplid; i++) if(IsPlayerConnected(i))
		{
			GetPlayerIp(playerid, msg, sizeof(msg));
			mygeoip_city_name(msg, msg, sizeof(msg));
			format(msg, sizeof(msg), "%s(%d): %s", GetFormattedName(i), i, msg);
			SendClientMessage(playerid, COLOR_INFO3, msg);
		}
		return true;
	}
	#endif
	if(cmdhash == /* time */ -641966454 ||cmdhash == /* mytime */ 1578749804 )
	{
		new tmp[64];
		new hr,mn,sc;
		new dt,mh,yr;
		gettime(hr, mn, sc);
		getdate(yr, mh, dt);
		format(tmp, sizeof(tmp), "%02d/%02d/%04d  %02d:%02d:%02d", dt,mh,yr, hr, mn, sc);
		SendClientMessage(playerid, COLOR_INFO2, tmp);
		return true;
	}
	if(cmdhash == /* walltime */ -1581341342 )
	{
		new tmp[64];
		tmp[0] = GetTickCount();
		format(tmp, sizeof(tmp), "GetTickCount() = %d; %d / 60000 = %0.2f", tmp[0], tmp[0], float(tmp[0]) / 60000.0);
		SendClientMessage(playerid, COLOR_INFO2, tmp);
		return true;
	}
	#if defined AFK_SHOW
	if(cmdhash == /* afklist */ -1244331921 )
	{
		new tmp[64], sleeptime, i, cnt = 0;
		for(i=0; i <= maxplid; i++)
			if(pstate[i] == PSTATE_PAUSE) cnt++;
		if(cnt > 0)
		{
			format(tmp, sizeof(tmp), "There are %d players that currently AFK (in menu pause):", cnt);
			SendClientMessage(playerid, COLOR_INFO3, tmp);
		}
		else return SendClientMessage(playerid, COLOR_INFO3, "There are no players that currently AFK");
		for(i=0; i <= maxplid; i++) if(pstate[i] == PSTATE_PAUSE)
		{
			sleeptime = GetPlayerAFKTime(i)/TICKS_PER_SEC;
			format(tmp, sizeof(tmp), "%s(%d): %02d:%02d", GetFormattedName(i), i, sleeptime/60, sleeptime%60);
			SendClientMessage(playerid, COLOR_INFO3, tmp);
		}
		return true;
	}
	#endif
	#if defined _dns_included
	if(cmdhash == /* host */ -312032577 ||cmdhash == /* hosts */ -80847164 )
	{
		new plip[20];
		for(new i=0; i <= maxplid; i++) if(IsPlayerConnected(i))
		{
			GetPlayerIp(i, plip, sizeof(plip));
			if(!isnull(plip))
				rdns(plip, (i & 0xFFFF) | ((playerid+1) << 16));
		}
		return true;
	}
	#endif
	#if defined AFK_SHOW
	if(cmdhash == /* ping */ -838294839 )
	{
		new tmp[64];
		for(new i=0; i <= maxplid; i++) if(pstate[i])
		{
			format(tmp, sizeof(tmp), "%s(%d): real ping: %dms; current ping: %dms",
				GetFormattedName(i), i, GetPlayerPing(i), GetPlayerAFKTime(i));
			SendClientMessage(playerid, COLOR_INFO3, tmp);
		}
		return true;
	}
	#endif
	if(cmdhash == /* me */ 533467831 )
	{
		if(!CheckFlood(playerid))
			return true;
		new actiontext[MAX_CHATBUBBLE_LENGTH+1], pcol;
		mystrend(actiontext, cmdtext, idx);
		pcol = GetPlayerColor(playerid);
		//GetPlayerName(playerid, actiontext, sizeof(actiontext));
		format(actiontext,sizeof(actiontext),"* %s %s", GetFormattedName(playerid), actiontext);
		#if defined BUBBLES_ENABLED && defined __samp03
		SetPlayerChatBubble(playerid,actiontext,pcol, 50.0, 60000);
		#endif
		SendClientMessageToAll(pcol,actiontext);
		return true;
	}
	
	if(cmdhash == /* invisible */ -869169156 )
	{
		new tmp[32], int;
		if(!vehicleid) return SendClientMessage(playerid, COLOR_ERROR, "Get vehicle first!");
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp))
		{
			SendPlayerUsageMsg(playerid, cmd, "([interiorid])");
			int = random2(1,10);
		}
		else int = strval(tmp);
		LinkVehicleToInterior(vehicleid, int);
		return true;
	}
	if(cmdhash == /* vehicles */ -965482018 )
	{
		new tmp[32], page;
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp)) page = 0;
		else page = strval(tmp) - 1;
		return ShowBook(aVehicleNames, sizeof(aVehicleNames), page, cmd, playerid);
	}
	if(cmdhash == /* version */ 1238595311 )
	{
		//new tmp[32];
		//format(tmp, sizeof(tmp), __DATE__);
		//SendClientMessage(playerid, COLOR_INFO1, __TIME__);
		return true;
	}
	#if defined BINDS_ALLOWED
	if(cmdhash == /* bind */ 1979145976 )
	{
		new tmp[96], keys;
		CMD_TOKEN(tmp);
		if(!isnull(tmp))
		{
			if(strcmd(tmp, "add"))
			{
				CMD_TOKEN(tmp);
				if(isnull(tmp))
					return SendPlayerUsageMsg(playerid, cmd, "\"add\" [key] [/cmd]");
				keys = strval(tmp);
				mystrend(tmp, cmdtext, idx);
				if(isnull(tmp))
					return SendPlayerUsageMsg(playerid, cmd, "\"add\" [key] [/cmd]");
				if(!bind_add(playerid, keys, tmp))
					SendClientMessage(playerid, COLOR_ERROR, "Error on binding command!");
				return true;
			}
			else if(strcmd(tmp, "remove"))
			{
				CMD_TOKEN(tmp);
				if(isnull(tmp))
					return SendPlayerUsageMsg(playerid, cmd, "\"remove\" [key]");
				keys = strval(tmp);
				if(!bind_remove(playerid, keys))
					SendClientMessage(playerid, COLOR_ERROR, "Error on removing bind!");
				return true;
			}
			else if(strcmd(tmp, "show"))
			{
				for(new i = 0, en = bind_upper_bound(), plid;
					i < en; i++)
				{
					if(bind_get(i, plid, keys, tmp) && (plid == playerid || isadm))
					{
						if(isadm)
							format(tmp, sizeof(tmp), "%d: %d: %s", plid, keys, tmp);
						else
							format(tmp, sizeof(tmp), "%d: %s", keys, tmp);
						SendClientMessage(playerid, COLOR_INFO3, tmp);
					}
				}
				return true;
			}
		}
		SendPlayerUsageMsg(playerid, cmd, "\"add\"|\"remove\"|\"show\" [...]");
		return true;
	}
	#endif

	#if MOD_CURRENT == MOD_URMCR || MOD_CURRENT == MOD_UNITED
	if(cmdhash == /* bridge */ 296568258 )
	{
		new tmp[32];
		CMD_TOKEN(tmp /*[32]*/);
		if(isnull(tmp) || (!strcmd(tmp, "open")&&!strcmd(tmp, "close")))
			return SendPlayerUsageMsg(playerid, cmd, "open|close");
		else // 0 to init opening, 3 to init closing
			BridgeRotate(strcmd(tmp, "open")?0:3);
		return true;
	}
	#endif

	#if defined _extrcon_included
	if(cmdhash == /* modstat */ -1736821851 )
	{
		static ip[] = "83.222.114.142";
		static port[3] = {8901, 8902, 8903};
		new msg[128];
		for(new i=0; i<3; i++)
		{
			if(GetInfoPacket(ip,port[i]))
			{
				iGetHostname(msg);
				format(msg,sizeof(msg),"%s(%s:%d): players %d/%d", msg, ip, port[i], iGetPlayers(), iGetMaxPlayers());
				//format(msg,sizeof(msg),"%d/%d", iGetPlayers(), iGetMaxPlayers());
			}
			else
				format(msg,sizeof(msg),"Offline(%s:%d)",ip, port[i]);
			SendClientMessage(playerid, COLOR_INFO1, msg);
		}
		return true;
	}
	#elseif defined myquery_dll_inc
	if(cmdhash == /* modstat */ -1736821851 )
	{
		static const ip[] = "83.222.114.142";
		static const port[] =
		{
			#if MOD_CURRENT != MOD_UNITED
			8901,
			#endif
			#if MOD_CURRENT != MOD_GOSTOWN
			8902,
			#endif
			#if MOD_CURRENT != MOD_ANDERIUS
			8903,
			#endif
			#if MOD_CURRENT != MOD_URMCR
			8904,
			#endif
			0
		};
		new players, maxplayers;
		new msg[64];
		for(new i=0; i<3; i++)
		{
			myq_getplayers(ip, port[i], maxplayers, players);
			if(maxplayers>0)
				format(msg, sizeof(msg), "%s:%d - players %d/%d", ip, port[i], players, maxplayers);
			else
				format(msg, sizeof(msg), "%s:%d - offline", ip, port[i]);
			SendClientMessage(playerid, COLOR_INFO1, msg);
		}
		return true;
	}
	#endif
	#if defined walk_inc
	if(cmdhash == /* walkstyle */ 133548157 )
	{
		new tmp[64];
		CMD_TOKEN(tmp);
		if(isnull(tmp))
		{
			format(tmp, sizeof(tmp), "Current walkstyle: %d", GetPlayerWalkingStyle(playerid));
			SendClientMessage(playerid, COLOR_INFO1, tmp);
			SendPlayerUsageMsg(playerid, cmd, "[0-13]");
			return true;
		}
		SetPlayerWalkingStyle(playerid, strval(tmp));
		//SendFormattedMessage(playerid, WHITE, "SERVER: Walking style: %d", strval(tmp));
		return 1;
	}
	#endif
	#if defined myenter_inc
	if(cmdhash == /* exit */ 916375285 )
	{
		if(!ExitEntrace(playerid))
			SendClientMessage(playerid, COLOR_ERROR, "You must be in interior to use this command");
		return true;
	}
	#endif
	#if defined vision_inc
	if(cmdhash == /* vision */ -971993335 )
	{
		new tmp[64];
		CMD_TOKEN(tmp);
		if(isnull(tmp))
		{
			SendPlayerUsageMsg(playerid, cmd, "[0-2]");
			return true;
		}
		tmp[0] = strval(tmp);
		if(tmp[0] == 1 || tmp[0] == 2)
			SetPlayerShakeVision(playerid, tmp[0]);
		else if(tmp[0] == 0)
			DisablePlayerShakeVision(playerid);
		else
			SendPlayerUsageMsg(playerid, cmd, "[0-2]");
		return true;
	}
	#endif
	/**************************** DM *********************/
	#if defined DEATHMATCH
	if(cmdhash == /* dm */ 1189074900 ) // imported from LVFR
	{
		new tmp[128], pcol;
		SetPlayerPos(playerid, random2(DMGRID_MINX, DMGRID_MAXX), random2(DMGRID_MINY, DMGRID_MAXY), DMGRID_Z);
		SetPlayerFacingAngle(playerid, float(random(360)));
		SetPlayerInterior(playerid, DMGRID_INT);
		//godmod[playerid] = false;
		setbool(indm, playerid, true);
		SetPlayerHealth(playerid, 100.0);
		SetPlayerArmour(playerid, 0.0);
		ResetPlayerWeapons(playerid);
		#if defined DMGRID_WEAP1
		GivePlayerWeapon(playerid, DMGRID_WEAP1);
		#endif
		#if defined DMGRID_WEAP2
		GivePlayerWeapon(playerid, DMGRID_WEAP2);
		#endif
		#if defined DMGRID_WEAP3
		GivePlayerWeapon(playerid, DMGRID_WEAP3);
		#endif
		#if DMGRID_ENABLE_PROTECTION == true
		SetPlayerWorldBounds(playerid, DMGRID_MAXX, DMGRID_MINX, DMGRID_MAXY, DMGRID_MINY);
		#endif
		SetPlayerVirtualWorld(playerid, DMGRID_WORLD);
		pcol = GetPlayerColor(playerid);
		if((pcol&0xFF) == ALPHA) SetPlayerColor(playerid, pcol - ALPHA);
		//else if(!newinteriorid && oldinteriorid && !(pcol&0xFF)) SetPlayerColor(playerid, pcol + ALPHA);
		#if defined __samp03
		SetPlayerSkillLevel(playerid, 2, 1000);

		#if __samp03 >=3
		for(new i = 0; i < MAX_PLAYER_ATTACHED_OBJECTS; i++)
		  RemovePlayerAttachedObject(playerid, i);
		#elseif __samp03 == 2
		StopPlayerHoldingObject(playerid);
		#endif

		#endif
		//for(new i = 0; i < NUM_PLAYERS; i++) if(IsPlayerConnected(i)) ShowPlayerNameTagForPlayer(playerid, i, false);
		format(tmp, sizeof(tmp), "%s has entered deathmatch mode. (/dm)", GetFormattedName(playerid));
		SendClientMessageToAll(COLOR_INFO2, tmp);
		return true;
	}
	#endif
	if(cmdhash == /* getinfo */ -1856085253 )
	{
		new tmp[160], gid;
		CMD_TOKEN(tmp);
		if(isnull(tmp))
			return SendPlayerUsageMsg(playerid, cmd, "[playerid]");
		gid = strid(tmp);
		if(!IsPlayerConnected(gid)) return SendClientMessage(playerid, COLOR_ERROR, CMD_INVALID_PLID);
		// printout
		#if !defined DEATHMATCH
		 #define getbool(%0,%1) (0!=0)
		#endif
		format(tmp, sizeof(tmp), "Godmode: %s; Hotkeys: %s; Nogoto: %s; SuperJump: %s; InDM: %s, LoggedIn: %s; TimePlayed: %dm",
			boolalpha(godmod[gid], 0), boolalpha(hkctrl[gid], 0),
			boolalpha(getbool(nogoto, gid), 1), boolalpha(getbool(superjump, gid), 0),
			boolalpha(getbool(indm, gid), 2), boolalpha(IsPlayerLogged(gid), 2),
			timeplayed[gid]);
		SendClientMessage(playerid, COLOR_INFO2, tmp);
		#if !defined DEATHMATCH
		 #undef getbool
		#endif
		return true;
	}
	if(cmdhash == /* shapito */ -1943854049 )
	{
		if(timershapito[playerid] == -1)
		{
			new time = 1000, tmp[32];
			CMD_TOKEN(tmp /*[32]*/);
			if(!isnull(tmp))
				time = strval(tmp);
			if(time > 30)
				timershapito[playerid] = SetTimerEx("Shapito", time, true, "i", playerid);
		}
		else
		{
			KillTimer(timershapito[playerid]);
			timershapito[playerid] = -1;
		}
		return true;
	}
	// end
	PlayerPlaySound(playerid, 1139, 0.0, 0.0, 0.0); // bad command
	#if defined DOSH_inc
	return Ship_OnPlayerCommandText(playerid, cmdtext);
	#else
	return false;
	#endif

	#undef CMD_TOKEN
}

